Regasm.exe (outil Assembly Registration Tool)

L'outil Assembly Registration Tool (Inscription de l'assembly) lit les métadonnées figurant dans un assembly et ajoute les entrées nécessaires au Registre, ce qui permet aux clients COM de créer en toute transparence des classes .NET Framework. Une fois qu'une classe est inscrite, tout client COM peut l'utiliser comme s'il s'agissait d'une classe COM. La classe fait l'objet d'une seule inscription, lors de l'installation de l'assembly. Les instances des classes figurant dans l'assembly ne peuvent pas être créées à partir de COM tant qu'elles n'ont pas été concrètement inscrites.

Pour exécuter l’outil, utilisez l’invite de commandes développeur Visual Studio ou PowerShell pour développeurs Visual Studio.

À l'invite de commandes, tapez :

Syntaxe

regasm assemblyFile [options]

Paramètres

Paramètre Description
assemblyFile Assembly à inscrire avec COM.
Option Description
/codebase Crée une entrée Codebase dans le Registre. L’entrée Codebase spécifie le chemin d’un assembly qui n’est pas installé dans le Global Assembly Cache. Ne spécifiez pas cette option si vous comptez installer par la suite l’assembly que vous inscrivez auprès du Global Assembly Cache. Il est fortement recommandé que l’argument assemblyFile que vous spécifiez avec l’option /codebase corresponde à un assembly avec nom fort.
/registered Spécifie que cet outil fera uniquement référence aux bibliothèques de types qui ont déjà été inscrites.
/asmpath:directory Spécifie un répertoire contenant des références d'assembly. Doit être utilisé avec l’option /regfile.
/nologo Supprime l'affichage de la bannière de démarrage Microsoft.
/regfile [:regFile] Génère le fichier .reg spécifié pour l'assembly, qui comporte les entrées du Registre nécessaires. La spécification de cette option ne modifie pas le Registre. Vous ne pouvez pas utiliser cette option avec les options /u ou /tlb.
/silent ou /s Supprime l'affichage des messages indiquant la réussite des opérations.
/tlb [:typeLibFile] Génère, à partir de l'assembly spécifié, une bibliothèque de types comportant les définitions des types accessibles définis dans l'assembly.
/unregister ou /u Annule l’inscription des classes pouvant être créées figurant dans assemblyFile. Si cette option n'est pas spécifiée, Regasm.exe inscrit les classes pouvant être créées dans l'assembly.
/verbose Spécifie le mode détaillé ; affiche la liste de tous les assemblys référencés pour lesquels une bibliothèque de types doit être générée, en cas de spécification avec l’option /tlb.
/? ou /help Affiche la syntaxe et les options de commande de l'outil.

Notes

Les options de ligne de commande de Regasm.exe ne respectent pas la casse. Il vous suffit d'indiquer les éléments de l'option nécessaires à son identification de manière unique. Par exemple, /n équivaut à /nologo, et /t:outfile.tlb à /tlb:outfile.tlb.

Notes

Vous pouvez utiliser l’option /regfile pour générer un fichier .reg comportant les entrées du Registre plutôt que d’apporter directement les modifications au Registre. Vous pouvez mettre à jour le Registre d'un ordinateur en important le fichier .reg à l'aide de l'Éditeur du Registre (Regedit.exe). Le fichier.reg ne contient aucune mise à jour de Registre pouvant être effectuée par les fonctions d’inscription définies par l’utilisateur. L’option /regfile émet uniquement des entrées de Registre pour les classes managées. Cette option n'émet pas d'entrée pour TypeLibID ou InterfaceID.

Quand vous spécifiez l’option /tlb, Regasm.exe génère et inscrit une bibliothèque de types décrivant les types figurant dans l’assembly. Regasm.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. La génération d'une bibliothèque de types pour un assembly référençant d'autres assemblys peut provoquer la génération de plusieurs bibliothèques de types en une seule opération. Vous pouvez utiliser la bibliothèque de types pour fournir les informations de type aux outils de développement comme Visual Studio. N’utilisez pas l’option /tlb si l’assembly que vous inscrivez a été produit par l’importateur de bibliothèques de types (Tlbimp.exe). Vous ne pouvez pas exporter de bibliothèque de types à partir d'un assembly ayant été importé depuis une bibliothèque de types. L’option /tlb produit le même effet que l’exportateur de bibliothèques de types (Tlbexp.exe) et Regasm.exe, à l’exception près que Tlbexp.exe n’inscrit pas la bibliothèque de types qu’il génère. Si vous utilisez l’option /tlb pour inscrire une bibliothèque de types, vous pouvez utiliser l’option /tlb avec l’option /unregister afin d’annuler l’inscription de la bibliothèque de types. L'utilisation simultanée des deux options annulera l'inscription de la bibliothèque de types et des entrées d'interface, ce qui peut considérablement nettoyer le Registre.

Lorsque vous inscrivez un assembly destiné à être utilisé par COM, Regasm.exe ajoute des entrées au Registre sur l'ordinateur local. Plus précisément, il crée des clés de Registre dépendantes de la version qui permettent à plusieurs versions du même assembly de s'exécuter côte-à-côte sur un ordinateur. La première fois qu’un assembly est inscrit, une clé de premier niveau est créée pour l’assembly, et une sous-clé unique est créée pour la version spécifique. Chaque fois que vous inscrivez une nouvelle version de l'assembly, Regasm.exe crée une sous-clé pour la nouvelle version.

Par exemple, imaginons un scénario dans lequel vous inscrivez le composant managé, myComp.dll, version 1.0.0.0 pour qu'il soit utilisé par COM. Par la suite, vous inscrivez myComp.dll, version 2.0.0.0. Vous décidez que toutes les applications clientes COM sur l'ordinateur utilisent myComp.dll version 2.0.0.0 et vous décidez d'annuler l'inscription de myComponent.dll version 1.0.0.0. Ce modèle de Registre vous permet d'annuler l'inscription de myComp.dll version 1.0.0.0, car seule la sous-clé de la version 1.0.0.0 est supprimée.

Après avoir inscrit un assembly à l’aide de Regasm.exe, vous pouvez l’installer dans le Global Assembly Cache, pour qu’il puisse être activé à partir d’un client COM. Si l'assembly ne va être activé que par une seule application, vous pouvez alors le placer dans le répertoire de cette application. L’utilisation de l’option /codebase est une alternative à l’utilisation du Global Assembly Cache. Toutefois, l’emplacement de l’assembly durant l’inscription est enregistré globalement, et l’activation échoue si l’assembly est déplacé. Si l’assembly est introuvable par sondage, l’option /codebase charge l’assembly dans un contexte de chargement qui fait l’objet de considérations supplémentaires documentées dans Assembly.LoadFrom.

Exemples

La commande suivante inscrit toutes les classes publiques figurant dans myTest.dll.

regasm myTest.dll

La commande suivante génère le fichier myTest.reg, qui comporte toutes les entrées du Registre nécessaires. Cette commande ne met pas à jour le Registre.

regasm myTest.dll /regfile:myTest.reg

La commande suivante inscrit toutes les classes publiques figurant dans myTest.dll et elle génère et inscrit la bibliothèque de types myTest.tlb, qui comporte les définitions de tous les types publics définis dans myTest.dll.

regasm myTest.dll /tlb:myTest.tlb

Voir aussi