Regasm e dll con suppporto COM

martedì 31 ottobre 2006 - 10.56

senzavento Profilo | Newbie

Ciao a tutti,
ho fatto una dll in c# 2005. L'ho compilata attivando la registrazione per l'interoperabilità com.
Questa dll la referenzio in VBA in excel. Sul mio pc tutto ok.
Nel momento in cui provo su un altro pc non funzia.
Ovviamente l'ho registrata con
regasm <pathdll> /codebase
e mi esce il messaggio di registrazione effettuata con successo, ma poi se apro excel e il dialogo dei riferimenti VBA della dll non c'è traccia.
Qualcuno sa aiutarmi? grazie
Andrea

Brainkiller Profilo | Guru

>Questa dll la referenzio in VBA in excel. Sul mio pc tutto ok.
>Nel momento in cui provo su un altro pc non funzia.
>Ovviamente l'ho registrata con
>regasm <pathdll> /codebase
>e mi esce il messaggio di registrazione effettuata con successo,
>ma poi se apro excel e il dialogo dei riferimenti VBA della dll
>non c'è traccia.

Ciao Andrea,
non ho personale esperienza in questo genere di cose. Le prime cose che mi vengono in mente sono tra le più banali:
- E' installato il .NET Framework sull'altro computer ? (immagino di sì)
- E' installata la stessa versione di Excel ?
- C'è lo stesso sistema operativo ?
- Hai effettuato questa prova anche su altri PC ?

In modo da isolare il problema.
Ciao

David De Giacomi | Microsoft MVP
http://blogs.dotnethell.it/david/

senzavento Profilo | Newbie

Ciao, grazie della risposta, il framework, sist. operativo e versione di excel sono gli stessi.
dopo varie prove ho appena visto che se uso il comando:

regasm <pathdll> /codebase /tlb:<nomedll>.tlb

mi crea il tlb nella stessa cartella della dll e la registra correttamente.
grazie, andrea

senzavento Profilo | Newbie

Altro problema,
vedo il file registrato nella cartella dell'applicazione, quella specificata dall'opzione /codebase
nel dialogo riferimenti è presente con tale path.

vado per eseguire l'applicazione e quando arriva a dover istanziare l'oggetto mi dà massaggio di errore:
non è possibile trovare l'assembly <nome> o uno dei suoi riferimenti.

per quanto riguarda i riferimenti ho controllato e non ne mancano.
Credo che il problema derivi dalla registrazione, anche se mi dice che è fatta con successo

Quindi provo ad installare la dll nella GAC.
La installo utilizzando gacutil /i e fin qui tutto ok, nella GAC vedo la mia dll.
Ora dovrei comunque registrarla con regasm per renderlo visibile com componente COM giusto?
tuttavia se poi eseguo:

c:\>regeam <GacDir>\<miadll>

mi esce sempre il messaggio:
"unable to locate input assembly or one of its dependencies"

Aiutooo, grazie

ze87 Profilo | Newbie

Ciao senzavento,

Volevo chiederti come sei riuscito a vedere la dll fatta da .NET su Excel, perchè io non riesco proprio a visualizzarla nella libreria oggetti.

Ciao e Grazie mille in anticipo!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5