Partager via


Inscription d'assemblys dans COM

Vous pouvez exécuter un outil en ligne de commande appelé Assembly Registration Tool (Regasm.exe) pour inscrire ou annuler l’inscription d’un assembly à utiliser avec COM. Regasm.exe ajoute des informations sur la classe au registre système afin que les clients COM puissent utiliser la classe .NET Framework de manière transparente. La RegistrationServices classe fournit les fonctionnalités équivalentes.

Un composant managé doit être inscrit dans le Registre Windows avant de pouvoir être activé à partir d’un client COM. Le tableau suivant présente les clés que Regasm.exe ajoute généralement au Registre Windows. (000000 indique la valeur GUID réelle.)

Identifiant Unique Global (GUID) Descriptif Clé du Registre
CLSID Identificateur de classe HKEY_CLASSES_ROOT\CLSID\{000…000}
IID Identificateur d’interface HKEY_CLASSES_ROOT\Interface\{000…000}
LIBID Identificateur de bibliothèque HKEY_CLASSES_ROOT\TypeLib\{000…000}
Identifiant de programme (ProgID) Identificateur programmatique HKEY_CLASSES_ROOT\000…000

Sous la clé HKCR\CLSID\{0000…0000}, la valeur par défaut est définie sur le ProgID de la classe, et deux nouvelles valeurs nommées, Class et Assembly, sont ajoutées. Le runtime lit la valeur Assembly à partir du Registre et la passe au service de résolution d’assembly du runtime. Le résolveur d'assemblage tente de localiser l'assemblage, en fonction des détails de l'assemblage tels que le nom et le numéro de version. Pour que le résolveur d'assemblage puisse localiser un assemblage, celui-ci doit se trouver à l'un des emplacements suivants :

  • Le cache d'assemblages global (doit être un assemblage doté d'un nom fort).

  • Dans le répertoire de l’application. Les assemblies chargées dans le chemin de l’application sont accessibles uniquement depuis cette application.

  • Sur un chemin de fichier spécifié avec l’option /codebase définie sur Regasm.exe.

Regasm.exe crée également la clé InProcServer32 sous la clé HKCR\CLSID\{0000...0000}. La valeur par défaut de la clé est définie sur le nom de la DLL qui initialise le Common Language Runtime (Mscoree.dll).

Examen des entrées du Registre

COM Interop fournit une implémentation de fabrique de classes standard pour créer une instance de n’importe quelle classe .NET Framework. Les clients peuvent appeler la DLL managée DllGetClassObject pour obtenir une fabrique de classes et créer des objets, comme ils le feraient avec n’importe quel autre composant COM.

Pour la InprocServer32 sous-clé, une référence à Mscoree.dll apparaît à la place d’une bibliothèque de types COM traditionnelle pour indiquer que le Common Language Runtime crée l’objet managé.

Voir aussi