2015-03-02 3 views
3

J'ai fait un wrapper COM pour C# pour l'utiliser dans vba. Je l'ai compilé, après avec gacutil et regasm je l'ai installé sur mon pc, après je l'ai référé dans vba et ça a fonctionné parfaitement.Registre tlb COM

Maintenant, je veux utiliser ce fichier foo.tlb dans un autre PC, mais il n'a pas gacutil ou VS.

Je dois juste exécuter regasm.exe pour cette tlb? Ou quoi d'autre j'ai besoin de le faire?

+0

Les composants COM doivent avoir un installateur. La plupart des programmeurs assimilent la création d'un canal radiculaire. Mais simple avec le bon utilitaire, comme ceci [VS extension] (https://visualstudiogallery.msdn.microsoft.com/9abe329c-9bba-44a1-be59-0fbf6151054d). Vous n'avez * pas * à en avoir un, vous pouvez limp avec Regasm.exe sans le mettre dans le GAC. Utilisez les options/tlb et/codebase. –

Répondre

-1

Si vous avez juste besoin d'enregistrer la typelib, vous pouvez utiliser un utilitaire d'enregistrement tlb, tel que regtlibv12, trouvé dans C:\Windows\Microsoft.NET\Framework\v4.0.30319. Malheureusement, sa présence dans ce répertoire ne peut être garantie, en particulier sur les nouvelles versions de Windows où .NET est déjà pré-installé. En cas de doute, essayez de trouver une copie sur un système plus ancien.

0

Il vous suffit d'utiliser regasm sur l'ensemble comme Hans suggéré:

placer l'ensemble quelque part sur le système cible et appeler regasm /tlb /codebase <assembly name>. Cela créera un nouveau fichier *.tlb et les entrées de registre nécessaires pour rendre l'assembly et la bibliothèque COM de type visible à leur emplacement actuel.

Sans le /codebase, l'assembly doit se trouver dans le GAC.