J'ai un assembly .NET que j'ai exposé à COM via un fichier tlb, et un installateur qui enregistre le tlb. J'ai vérifié manuellement que le programme d'installation fonctionne correctement et que les clients COM peuvent accéder à la bibliothèque. Jusqu'ici, tout va bien ...Est-il possible de tester un assembly exposé COM à partir de .NET?
Cependant, j'essaie de mettre en place des tests système automatisés qui vérifient que le programme d'installation fonctionne correctement. Dans le cadre de cela, j'ai automatisé l'installation sur une machine virtuelle, et je veux maintenant faire quelques appels à la bibliothèque COM installée pour vérifier qu'il fonctionne correctement. J'ai d'abord pensé écrire des tests en VB6, mais j'ai déjà une grande suite de tests écrits en C#, qui font référence à l'assemblage .NET. J'espérais que je pourrais les modifier pour référencer le .tlb, mais j'obtiens une erreur quand j'essaye cela dans VS2008:
La bibliothèque de type ActiveX 'blah.tlb' a été exportée depuis un assembly .NET et ne peut pas être ajoutée pour référence.
Y at-il un moyen de tromper VS2008 en me permettant d'ajouter cette référence, peut-être en modifiant le fichier tlb?
Google n'a trouvé aucune solution. Tout ce que j'ai trouvé est un article Microsoft Connect indiquant que ceci est « By Design »: http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=120882
Quelques personnes ont mentionné l'utilisation de tlbimp.exe. Si j'essaye tlbimp.exe blah.tlb j'obtiens l'erreur: "La bibliothèque de type a été exportée d'un assembly CLR et ne peut pas être ré-importée comme un assembly CLR." – Akash