64 votes

Que fait réellement "S'inscrire à COM Interop"?

Que fait exactement l'option de projet VS "S'inscrire à COM interop"? Parce que lorsque je construis ma bibliothèque avec cette option activée, je peux appeler CreateObject sur ma bibliothèque à partir de VBScript. Mais si je construis sans cela et que je lance ensuite manuellement Regasm, CreateObject échoue. Alors je me demande - qu'est-ce que VS2010 fait que je ne fais pas?

64voto

Hans Passant Points 475940

Il fait la même chose que l'exécution de Regasm.exe avec l' /tlb /base de code options. L'option /base est probablement celui que vous avez oublié. Regasm aime en supposant que vous mettre la DLL dans le GAC. Qui est en effet un bon moyen d'éviter l'Enfer des DLL, toujours un COM de problème. Mais pas très approprié sur votre machine de dev, vous ne voulez pas polluer le GAC whlie développer et tester le code.

L'utilisation de la mauvaise version de Regasm.exe sur une machine 64 bits est une autre façon d'obtenir en difficulté, il y a généralement 4 versions sur votre machine. Assurez-vous de distinguer les 32 bits et les versions 64 bits (c:\windows\microsoft\framework vs framework64), ils écrivent des différentes clés de registre. Vous voulez choisir l'un qui est compatible avec l'application cliente. En utilisant à la fois est très bien aussi, .NET code peut s'exécuter en mode, mais assez rare. Et la distinction entre la v2.0.50727 (.NET 2.0 par le biais de 3.5SP1) et de la v4.0 versions. La cueillette le droit Invite de Commande Visual Studio est la moitié de la bataille.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X