2009-08-05 10 views
1

J'ai développé un composant C# com que j'utilise à partir de C++ géré. Sur ma machine de dev quand tout fonctionne bien. Cependant quand je distribue les dossiers, j'ai reçu une erreur que le composant n'a pas été enregistré. Quand j'essaie un regsvr32 sur la DLL, cela me donne une erreur (les dll C# ne peuvent pas être enregistrés). Comment puis-je enregistrer correctement cette DLL COM?Enregistrer un composant C# COM?

Répondre

2

Vous utilisez regasm avec /codebase (et il doit être ComVisible [mais comme Patrick McDonald poinhts correctement, vous avez déjà passé comme cela fonctionne localement])

+1

Il doit déjà être ComVisible si cela fonctionne sur la machine Dev, +1 pour le regasm –

1

je trouve que vous devez normalement faire:

regasm /codebase 

Parce que COM a besoin de connaître l'emplacement exact de votre assemblée pour pouvoir le charger.

Comme d'autres l'ont suggéré, vous devrez définir le projet C# comme COM visible (paramètres du projet, application, bouton d'informations d'assemblage).

contrôle Finer dont les classes sont visibles ou ne peut pas être obtenue en utilisant le [ComVisible (true)]/[ComVisible (false)] attribut avant chaque classe

Questions connexes