Partage via


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 Visual Studio Developer ou PowerShell pour Visual Studio Developer.

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 soit un assembly nommé 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 ou /tlb les /u options.
/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 une liste des assemblys référencés pour lesquels une bibliothèque de types doit être générée, lorsqu’elle est spécifiée 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 est équivalent à /nologo et /t: outfile.tlb équivaut à /tlb: outfile.tlb.

Notes

Vous pouvez utiliser l’option /regfile pour générer un fichier .reg qui contient les entrées du Registre au lieu d’apporter les modifications directement 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 ou n’émet TypeLibID pas InterfaceID d’entrées.

Lorsque vous spécifiez l’option /tlb , Regasm.exe génère et inscrit une bibliothèque de types décrivant les types trouvés 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èque 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’utilisation de l’option /tlb a le même effet que l’utilisation de l’exportateur de bibliothèque de types (Tlbexp.exe) et Regasm.exe, à l’exception que Tlbexp.exe n’inscrit pas la bibliothèque de types qu’elle produit. Si vous utilisez l’option /tlb pour inscrire une bibliothèque de types, vous pouvez utiliser l’option avec l’option /tlb /unregister permettant de désinscrire 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 pendant l’inscription est enregistré globalement et l’activation échoue si l’assembly est déplacé. Si l’assembly n’est pas trouvé par le biais d’une détection, l’option /codebase charge l’assembly dans un contexte de chargement à partir duquel des considérations supplémentaires sont documentées.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