Comment puis-je enregistrer une DLL COM écrite en C # avec Regsvr32?
J'ai une application VB6 qui utilise une DLL COM. La DLL est écrit en C#. Dans le C# les propriétés du projet, j'ai le "Registre pour COM interop" option cochée. Le VB6 application fonctionne très bien sur ma machine de développement. Le code C# qui suit ce format exactement: CodeProject C# COM Exemple
Cas d'un déploiement sur d'autres machines, Regsvr32.exe me donne le message d'erreur suivant lorsque j'essaie d'enregistrer la DLL:
The module "MyCOM.dll" was loaded but the entry-point DLLRegisterServer was not found.
Qu'est-ce que cela signifie? Pas de tutoriels/la documentation que j'ai lu à propos de COM Dll rien dire à propos de "point d'entrée DLLRegisterServer".
Nous avons eu des problèmes à l'aide de RegAsm.exe sur des machines différentes, donc nous avons vraiment besoin d'une solution où l'on peut courir regsvr32.exe au lieu de cela qui va travailler pour toute machine qui nous déployer (par exemple, XP, Vista, Windows 7, machines x86, x64 machines, etc.)
Que dois-je ajouter à mon code C# pour faire enregistrer-mesure avec regsvr32.exe?
source d'informationauteur Mike Webb
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas. Géré [ComVisible] les bibliothèques de classes doivent être enregistrés auprès de Regasm.exe.
Vous pouvez le faire à partir de l'IDE avec le Projet + Propriétés, onglet créer, Enregistrer pour COM interop case. Si vous exécutez Regasm.exe vous voulez généralement le /la base de code option de ligne de commande de sorte que vous n'avez pas à mettre l'assembly dans le GAC. Encore une autre option est de laisser Regasm.exe générer un .reg fichier avec l'option /regfile. Vous devriez juste l'exécuter sur la machine cible pour obtenir le registre mis à jour.
Edit: viens de voir les "grands problèmes" remarque. Remarque assurez-vous qu'ils sont à court d' /base de code. Vous n'avez qu'à choisir la bonne version sur les ordinateurs 64 bits. Il y a deux. Et vous avez besoin d'une invite de commande élevée, de sorte que l'UAC ne mettent pas un terme à cela.
Vous pouvez faire une simple application Windows et utilisez le code ci-dessous pour enregistrer la DLL COM. Assurez-vous d'ajouter le fichier manifeste pour exécuter en tant qu'Administrateur: