Type Library Exporter (Tlbexp.exe)

L'outil Type Library Exporter (Exportateur de bibliothèques de types) génère une bibliothèque de types décrivant les types définis dans un assembly du Common Language Runtime.

tlbexp assemblyName [/out:file] [/nologo] [/silent] [/verbose]

Paramètres

Argument Description

assemblyName

Assembly pour lequel exporter une bibliothèque de types.

Option Description

/asmpath: répertoire

Spécifie l'emplacement dans lequel rechercher des assemblys. Si vous utilisez cette option, vous devez spécifier explicitement les emplacements dans lesquels rechercher des assemblys référencés, y compris le répertoire actif.

Lorsque vous utilisez l'option asmpath, Type Library Exporter ne recherchera pas d'assembly dans le Global Assembly Cache (GAC).

/help

Affiche la syntaxe et les options de commande de l'outil.

/names: nom_fichier

Spécifie la mise en majuscules des noms figurant dans une bibliothèque de types. L'argument nom_fichier est un fichier texte. Chaque ligne du fichier spécifie la mise en majuscules d'un nom de la bibliothèque de types.

/nologo

Supprime l'affichage de la bannière de démarrage Microsoft.

/oldnames

Oblige Tlbexp.exe à exporter des noms de types décorés s'il y a un conflit de nom de type. Notez que c'était le comportement par défaut dans les versions antérieures à la version 2.0 du .NET Framework.

/out: fichier

Spécifie le nom du fichier bibliothèque de types à générer. Si vous omettez cette option, Tlbexp.exe génère une bibliothèque de types portant le même nom que celui de l'assembly (le véritable nom de l'assembly, pas nécessairement identique à celui du fichier comportant l'assembly), ainsi qu'une extension .tlb.

/silent

Supprime l'affichage des messages indiquant la réussite des opérations.

/tlbreference: nom_bibliothèque_types

Oblige Tlbexp.exe à résoudre explicitement les références à la bibliothèque de types sans consulter le Registre. Par exemple, si l'assembly B référence l'assembly A, vous pouvez utiliser cette option pour fournir une référence explicite à la bibliothèque de types, plutôt que de vous appuyer sur la bibliothèque de types spécifiée dans le Registre. Tlbexp.exe contrôle la version pour s'assurer que la version de la bibliothèque de types correspond à la version de l'assembly ; dans le cas contraire, il génère une erreur.

Notez que l'option tlbreference consulte toujours le Registre dans les cas où l'attribut ComImportAttribute est appliqué à une interface qui est ensuite implémentée par un autre type.

/tlbrefpath: chemin

Chemin complètement spécifié à une bibliothèque de types référencée.

/win32

Lors de la compilation sur un ordinateur 64 bits, cette option spécifie que Tlbexp.exe doit générer une bibliothèque de types 32 bits.

/win64

Lors de la compilation sur un ordinateur 32 bits, cette option spécifie que Tlbexp.exe doit générer une bibliothèque de types 64 bits.

/verbose

Spécifie le mode documenté ; affiche la liste de tous les assemblys référencés pour lesquels une bibliothèque de types doit être générée.

/?

Affiche la syntaxe et les options de commande de l'outil.

Notes

Les options de ligne de commande de Tlbexp.exe ne respectent pas la casse et peuvent être spécifiées dans n'importe quel ordre. Il vous suffit de spécifier les éléments de l'option nécessaires à son identification de manière unique. Par exemple, /n équivaut à /nologo et /o:outfile.tlb à /out:outfile.tlb.

Notes

Tlbexp.exe génère une bibliothèque de types comportant les définitions des types définis dans l'assembly. Des applications, telles que Visual Basic 6.0, peuvent utiliser la bibliothèque de types générée pour créer une liaison vers les types .NET définis dans l'assembly.

La totalité de l'assembly est convertie immédiatement. Vous ne pouvez pas utiliser Tlbexp.exe pour générer des informations sur les types pour un sous-ensemble de types définis dans un assembly.

Vous ne pouvez pas utiliser Tlbexp.exe pour générer une bibliothèque de types à partir d'un assembly ayant été importé à l'aide de Type Library Importer (Tlbimp.exe). À la place, vous devez faire référence à la bibliothèque de types d'origine ayant été importée avec Tlbimp.exe. Vous pouvez exporter une bibliothèque de types à partir d'un assembly faisant référence à des assemblys ayant été importés à l'aide de Tlbimp.exe. Consultez la rubrique d'exemples ci-après.

Tlbexp.exe place les bibliothèques de types générées dans le répertoire de travail en cours ou dans le répertoire spécifié pour le fichier de sortie. Un seul assembly peut être à l'origine de plusieurs bibliothèques de types.

Tlbexp.exe génère une bibliothèque de types, mais ne l'inscrit pas. Par contre, l'outil Assembly Registration Tool (Regasm.exe) génère et inscrit une bibliothèque de types. Utilisez par conséquent Regasm.exe pour générer et inscrire une bibliothèque de types avec COM.

Si vous ne spécifiez pas l'option /win32 ou /win64, Tlbexp.exe génère une bibliothèque de types 32 bits ou 64 bits qui correspond au type d'ordinateur sur lequel vous exécutez la compilation (32 bits ou 64 bits). Pour les besoins de la compilation croisée, vous pouvez utiliser l'option /win64 sur un ordinateur 32 bits pour générer une bibliothèque de types 64 bits et l'option /win32 sur un ordinateur 64 bits pour générer une bibliothèque de types 32 bits. Dans les bibliothèques de types 32 bits, la valeur SYSKIND est définie à SYS_WIN32. Dans les bibliothèques de types 64 bits, la valeur SYSKIND est définie à SYS_WIN64. Toutes les transformations de type de données (par exemple, types de données classés selon la taille du pointeur comme IntPtr et UIntPtr) sont converties en conséquence.

Si vous utilisez l'attribut MarshalAsAttribute pour spécifier une valeur SafeArraySubType de VT_UNKOWN ou VT_DISPATCH, Tlbexp.exe ignore toute utilisation subséquente du champ SafeArrayUserDefinedSubType. Examinons, par exemple, les signatures suivantes :

[return:MarshalAs(UnmanagedType.SafeArray, SafeArraySubType=VarEnum.VT_UNKNOWN, SafeArrayUserDefinedSubType=typeof(ConsoleKeyInfo))] public Array StructUnkSafe(){return null;}
[return:MarshalAs(UnmanagedType.SafeArray, SafeArraySubType=VarEnum.VT_DISPATCH, SafeArrayUserDefinedSubType=typeof(ConsoleKeyInfo))] public Array StructDispSafe(){return null;}

la bibliothèque de types suivante est générée :

[id(0x60020004)]
HRESULT StructUnkSafe([out, retval] SAFEARRAY(IUnknown*)* pRetVal);
[id(0x60020005)]
HRESULT StructDispSafe([out, retval] SAFEARRAY(IDispatch*)* pRetVal);

Notez que Tlbexp.exe ignore le champ SafeArrayUserDefinedSubType.

Comme les bibliothèques de types ne peuvent pas contenir toutes les informations figurant dans les assemblys, Tlbexp.exe peut ignorer certaines données au cours du processus d'exportation. Pour plus d'informations sur le processus de transformation et l'identification de la source de chaque information émise vers une bibliothèque de types, consultez Résumé de la conversion d'un assembly en bibliothèque de types.

Notez que l'outil Type Library Exporter exporte des méthodes qui ont des paramètres TypedReference en tant que VARIANT, bien que l'objet TypedReference n'ait aucune signification dans le code non managé. Type Library Exporter (Tlbexp.exe)Lorsque vous exportez des méthodes qui ont des paramètres TypedReference, l'outil Type Library Exporter ne générera aucun avertissement ou aucune erreur et le code non managé qui utilise la bibliothèque de types résultante ne s'exécutera pas correctement.

L'outil Type Library Exporter est pris en charge sur Microsoft Windows 2000 et les versions ultérieures.

Exemples

La commande suivante génère une bibliothèque de types portant le même nom que celui de l'assembly figurant dans myTest.dll.

tlbexp myTest.dll

La commande suivante génère une bibliothèque de types portant le nom clipper.tlb.

tlbexp myTest.dll /out:clipper.tlb

L'exemple suivant illustre l'utilisation de Tlbexp.exe pour exporter une bibliothèque de types à partir d'un assembly faisant référence à des assemblys ayant été importés à l'aide de Tlbimp.exe.

Utilisez d'abord Tlbimp.exe pour importer la bibliothèque de types myLib.tlb et l'enregistrer sous myLib.dll.

tlbimp myLib.tlb /out:myLib.dll

La commande suivante utilise le compilateur C# pour compiler Sample.dll, faisant référence à myLib.dll créé au cours de l'exemple précédent.

CSC Sample.cs /reference:myLib.dll /out:Sample.dll

La commande suivante génère une bibliothèque de types pour Sample.dll faisant référence à myLib.dll.

tlbexp Sample.dll

Voir aussi

Référence

TypeLibExporterFlags Enumeration
Outils du .NET Framework
Outil Assembly Registration Tool (Regasm.exe)
Type Library Importer (Tlbimp.exe)
Invite de commandes du Kit de développement SDK

Autres ressources

Résumé de la conversion d'un assembly en bibliothèque de types