Regasm.exe (Assembly Registration-Tool)

Die Metadaten in einer Assembly werden vom Assembly Registration-Tool gelesen, und die erforderlichen Einträge werden der Registrierung hinzugefügt. COM-Clients sind so in der Lage, .NET Framework-Klassen transparent zu erstellen. Sobald eine Klasse registriert ist, kann diese von jedem COM-Client wie eine COM-Klasse verwendet werden. Die Klasse wird beim Installieren der Assembly nur einmal registriert. COM kann keine Instanzen von Klassen in der Assembly erstellen, bevor diese nicht registriert wurden.

Um das Tool auszuführen, verwenden Sie die Developer-Eingabeaufforderung von Visual Studio oder Visual Studio Developer PowerShell.

Geben Sie an der Eingabeaufforderung Folgendes ein:

Syntax

regasm assemblyFile [options]

Parameter

Parameter Beschreibung
assemblyFile Die in COM zu registrierende Assembly.
Option Beschreibung
/codebase Es wird ein Codebase-Eintrag in der Registrierung erstellt. Mit dem Codebase-Eintrag wird der Dateipfad für eine Assembly festgelegt, die nicht im globalen Assemblycache installiert ist. Geben Sie diese Option nicht an, wenn Sie die zu registrierende Assembly später im globalen Assemblycache installieren. Es wird dringend empfohlen, dass das mit der /codebase-Option festgelegte assemblyFile-Argument eine Assembly mit starkem Namen ist.
/registered Mit dieser Option wird angegeben, dass dieses Tool nur auf bereits registrierte Typbibliotheken verweist.
/asmpath:directory Mit dieser Option wird ein Verzeichnis angegeben, in dem Assemblyverweise enthalten sind. Muss mit der Option /regfile verwendet werden
/nologo Unterdrückt die Anzeige des Startbanners von Microsoft.
/regfile [:regFile] Mit dieser Option wird die angegebene REG-Datei mit den erforderlichen Registrierungseinträgen für die Assembly generiert. Bei Angabe dieser Option wird die Registrierung nicht geändert. Sie können diese Option nicht zusammen mit der Option /u oder der Option /tlb verwenden.
/silent oder /s Unterdrückt die Anzeige von Erfolgsmeldungen.
/tlb [:typeLibFile] Mit dieser Option wird eine Typbibliothek aus der angegebenen Assembly generiert, die Definitionen der in der Assembly definierten verfügbaren Typen enthält.
/unregister oder /u Diese Option hebt die Registrierung der in assemblyFile gefundenen erstellbaren Klassen auf. Wenn Sie diese Option nicht angeben, registriert "Regasm.exe" die erstellbaren Klassen in der Assembly.
/verbose Mit dieser Option wird der ausführliche Modus angegeben. Es wird eine Liste aller Assemblys angezeigt, auf die verwiesen wird und für die eine Typbibliothek generiert werden muss, wenn zusätzlich die Option /tlb angegeben wurde.
/? oder /help Zeigt Befehlssyntax und Optionen für das Tool an.

Hinweis

Bei den Befehlszeilenoptionen für "Regasm.exe" wird die Groß- und Kleinschreibung nicht beachtet. Geben Sie die Option einfach so weit an, dass eine eindeutige Identifizierung möglich ist. Z.B.: /n entspricht /nologo und /t:outfile.tlb entspricht /tlb:outfile.tlb.

Hinweise

Mit der Option /regfile können Sie eine REG-Datei mit den Registrierungseinträgen generieren, anstatt die Änderungen direkt in der Registrierung vorzunehmen. Sie können die Registrierung auf einem Computer aktualisieren, indem Sie die REG-Datei mit dem Registrierungs-Editor (Regedit.exe) importieren. Die REG-Datei enthält keine Aktualisierungen der Registrierung, die durch benutzerdefinierte Registrierungsfunktionen vorgenommen werden können. Die Option /regfile gibt nur Registrierungseinträge für verwaltete Klassen aus. Diese Option gibt keine Einträge für TypeLibIDs oder InterfaceIDs aus.

Bei Angabe der Option /tlb wird von „regasm.exe“ eine Typbibliothek generiert und registriert, mit der die in der Assembly gefundenen Typen beschrieben werden. Die generierten Typbibliotheken werden von "Regasm.exe" im aktuellen Arbeitsverzeichnis oder in dem für die Ausgabedatei angegebenen Verzeichnis platziert. Beim Generieren einer Typbibliothek für eine Assembly, in der auf andere Assemblys verwiesen wird, werden ggf. mehrere Typbibliotheken gleichzeitig generiert. Sie können die Typbibliothek zum Bereitstellen von Typinformationen für Entwicklungstools wie Visual Studio verwenden. Verwenden Sie die Option /tlb nicht, wenn die zu registrierende Assembly mit dem Type Library Importer-Tool (tlbimp.exe) erstellt wurde. Sie können keine Typbibliothek aus einer Assembly exportieren, die von einer Typbibliothek importiert wurde. Das Verwenden der Option /tlb entspricht der Verwendung des Type Library Exporter-Tools (tlbexp.exe) und von „regasm.exe“, wobei „tlbexp.exe“ die erstellte Typbibliothek allerdings nicht registriert. Wenn Sie die Option /tlb zum Registrieren einer Typbibliothek verwenden, können Sie die Optionen /tlb zusammen mit der Option /unregister nutzen, um die Registrierung der Typbibliothek aufzuheben. Durch die gemeinsame Verwendung der beiden Optionen wird die Registrierung der Typbibliothek und der Schnittstelleneinträge aufgehoben, wodurch die Registrierung in beachtlichem Umfang bereinigt werden kann.

Wenn Sie eine Assembly für die Verwendung mit COM registrieren, werden der Registrierung des lokalen Computers von "Regasm.exe" Einträge hinzugefügt. Genauer gesagt werden versionsabhängige Registrierungsschlüssel erstellt, mit denen die parallele Ausführung mehrerer Versionen derselben Assembly auf einem Computer ermöglicht wird. Bei der erstmaligen Registrierung einer Assembly werden ein Schlüssel auf oberster Ebene für die Assembly und ein eindeutiger Unterschlüssel für die spezielle Version erstellt. Bei jeder Registrierung einer neuen Assemblyversion wird von "Regasm.exe" für die neue Version ein Unterschlüssel erstellt.

Als Beispiel dient ein Szenario, in dem Sie die verwaltete Komponente "myComp.dll, Version 1.0.0.0" für die Verwendung mit COM registrieren. Anschließend wird "myComp.dll, Version 2.0.0.0" registriert. Sie bestimmen, dass alle COM-Clientanwendungen auf dem verwendeten Computer "myComp.dll, Version 2.0.0.0" verwenden. Außerdem heben Sie die Registrierung von "myComp.dll, Version 1.0.0.0" auf. Dieses Registrierungsschema ermöglicht Ihnen die Aufhebung der Registrierung von „myComp.dll, Version 1.0.0.0“, da nur der Unterschlüssel für Version 1.0.0.0 entfernt wird.

Nach dem Registrieren einer Assembly mit „regasm.exe“ können Sie diese im globalen Assemblycache installieren, sodass diese von jedem COM-Client aktiviert werden kann. Wenn die Assembly nur von einer einzelnen Anwendung aktiviert wird, können Sie diese im Verzeichnis der Anwendung platzieren. Die Verwendung der Option /codebase ist eine Alternative zur Verwendung des globalen Assemblycaches. Der Speicherort der Assembly während der Registrierung wird jedoch global aufgezeichnet und die Aktivierung schlägt fehl, wenn die Assembly verschoben wird. Wenn die Assembly nicht durch Überprüfen gefunden wird, lädt die Option /codebase die Assembly in einen Kontext zum Laden, in dem weitere Überlegungen in Assembly.LoadFrom dokumentiert sind.

Beispiele

Mit dem folgenden Befehl werden alle in myTest.dll enthaltenen öffentlichen Klassen registriert.

regasm myTest.dll

Mit dem folgenden Befehl wird die Datei myTest.reg generiert, in der alle erforderlichen Registrierungseinträge enthalten sind. Bei diesem Befehl wird die Registrierung nicht aktualisiert.

regasm myTest.dll /regfile:myTest.reg

Mit dem folgenden Befehl werden alle in myTest.dll enthaltenen öffentlichen Klassen registriert. Außerdem wird die Typbibliothek myTest.tlb, in der die Definitionen aller in myTest.dll definierten öffentlichen Typen enthalten sind, generiert und registriert.

regasm myTest.dll /tlb:myTest.tlb

Siehe auch