Domanda

Ho sviluppato un componente C # com che sto usando da c ++ gestito. Sulla mia macchina di sviluppo quando tutto funziona bene. Tuttavia, quando distribuisco i file, ho ricevuto un errore che il componente non è stato registrato. Quando provo un regsvr32 sulla DLL mi dà un errore (non è possibile registrare le DLL C #). Come posso registrare correttamente questa DLL COM?

È stato utile?

Soluzione

Si utilizza regasm con < code> / codebase (e deve essere ComVisible [ma come Patrick McDonald si avvia correttamente, lo hai già superato poiché funziona localmente])

Altri suggerimenti

Usa RegAsm con siwtch / codebase se il tuo assembly non è installato nel GAC (Global Assembly Cache).

I dettagli di ulteriori switch sono qui

Trovo che normalmente devi fare:

regasm /codebase

Perché COM deve conoscere la posizione esatta dell'assembly per poterlo caricare.

Come altri hanno suggerito, dovrai impostare il tuo progetto C # come COM visibile (impostazioni del progetto, applicazione, pulsante di informazioni sull'assemblaggio).

Il controllo più preciso di quali classi sono visibili o meno può essere ottenuto utilizzando l'attributo [ComVisible (true)] / [ComVisible (false)] prima di ogni classe

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top