Registrare un componente COM C #?
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?
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).
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