2017-10-20 58 views
0

Une application héritée affiche les numéros de version de tous ses composants, qui sont censés être des DLL. Nous sommes en train de tromper l'application pour diverses raisons en mettant des TLB dans le dossier qui est interrogé. Toutefois, lorsqu'il répertorie les informations de version, il apparaît comme "Inconnu" car les fichiers TLB ne possèdent pas de propriété Version de fichier.Obtention du numéro de version d'un TLB

Lorsque nous générons le TLB avec regasm filename.dll /tlb:filename.tlb, y a-t-il un moyen d'obtenir un regmm pour générer un TLB tel qu'il a une version de fichier? J'ai été incapable de trouver des informations à ce sujet en ligne. Je suppose que ce n'est tout simplement pas possible et donc nous devrons trouver une solution de contournement ...

+0

Les fichiers TBL supportent la version de fichier, donc vous pouvez ajouter la version de fichier post regasm en utilisant un outil, quelque chose comme: https://stackoverflow.com/questions/284258/how-do-i-set-the-version- information-for-an-existing-exe-dll –

+1

Il n'est pas si évident que vous utilisiez correctement les fichiers tlb. Ils ne contiennent aucun code, juste des déclarations. Ils sont l'équivalent exact des métadonnées dans un assemblage C#. Et sont souvent également intégrés dans le fichier exécutable qui implémente la bibliothèque. Il y a quelques cas d'angle où vous devez les déployer aussi, mais ils ne sont pas communs. Ils ont un numéro de version, major.minor, visible dans l'onglet Projet> Ajouter une référence> COM. L'inspecter est possible, pinvoke LoadTypeLib pour obtenir ITypeLib, appelez sa méthode GetLibAttr(). –

Répondre