Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Sie können ein Befehlszeilentool namens Assemblyregistrierungstool (Regasm.exe) ausführen, um eine Assembly für die Verwendung mit COM zu registrieren oder aufzuheben. Regasm.exe fügt der Systemregistrierung Informationen zur Klasse hinzu, damit COM-Clients die .NET Framework-Klasse transparent verwenden können. Die RegistrationServices Klasse stellt die entsprechende Funktionalität bereit.
Eine verwaltete Komponente muss in der Windows-Registrierung registriert werden, bevor sie von einem COM-Client aktiviert werden kann. In der folgenden Tabelle werden die Schlüssel angezeigt, die Regasm.exe normalerweise der Windows-Registrierung hinzufügt. (0000000 gibt den tatsächlichen GUID-Wert an.)
Globale eindeutige Kennung (GUID) | BESCHREIBUNG | Registrierungsschlüssel |
---|---|---|
CLSID | Klassenbezeichner | HKEY_CLASSES_ROOT\CLSID\{000…000} |
IID | Schnittstellenbezeichner | HKEY_CLASSES_ROOT\Interface\{000…000} |
LIBID | Bibliotheksbezeichner | HKEY_CLASSES_ROOT\TypeLib\{000…000} |
ProgID | Programmkennung | HKEY_CLASSES_ROOT\000... 000 |
Unter dem HKCR\CLSID\{0000...0000}-Schlüssel wird der Standardwert auf die ProgID der Klasse festgelegt, und zwei neue benannte Werte, Klasse und Assembly, werden hinzugefügt. Die Common Language Runtime liest den Wert „Assembly“ aus der Registrierung aus und übergibt ihn an den Assemblyresolver der Runtime. Der Assemblylöser versucht, die Assembly basierend auf Assemblyinformationen wie dem Namen und der Versionsnummer zu suchen. Damit der Assemblylöser eine Assembly finden kann, muss sich die Assembly an einem der folgenden Speicherorte befinden:
Im globalen Assemblycache (die Assembly muss einen starken Namen haben)
Im Anwendungsverzeichnis. Assemblies, die aus dem Anwendungspfad geladen wurden, sind nur von dieser Anwendung aus zugänglich.
Entlang eines Dateipfads, der mit der Option /codebase zu Regasm.exeangegeben ist.
Regasm.exe erstellt auch den InProcServer32-Schlüssel unter dem HKCR\CLSID\{0000…0000}-Schlüssel. Der Standardwert für den Schlüssel wird auf den Namen der DLL festgelegt, die die Common Language Runtime (Mscoree.dll) initialisiert.
Untersuchen von Registrierungseinträgen
COM-Interoperabilität stellt eine standardmäßige Klassenfabrikimplementierung bereit, um eine Instanz einer beliebigen .NET Framework-Klasse zu erstellen. Clients können DllGetClassObject für die verwaltete DLL aufrufen, um eine Klassenfactory abzurufen und Objekte zu erstellen, genau wie bei jeder anderen COM-Komponente.
Für den InprocServer32
Unterschlüssel wird anstelle einer herkömmlichen COM-Typbibliothek ein Verweis auf Mscoree.dll angezeigt, um anzugeben, dass die Common Language Runtime das verwaltete Objekt erstellt.