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.
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, das assemblyFile-Argument , das Sie mit der /codebase Option angeben, eine assembly mit starkem Namen zu sein. |
/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 /regfile Option 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 mit den /u Optionen verwenden /tlb . |
/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 |
Gibt ausführlichen Modus an; zeigt eine Liste aller Assemblys an, auf die verwiesen wird, für die eine Typbibliothek generiert werden muss, wenn sie mit der /tlb Option angegeben wird. |
/? 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. Ist z. B/n
. gleichbedeutend mit /nologo
und /t: outfile.tlb
entspricht dieser./tlb: outfile.tlb
Hinweise
Sie können die /regfile
Option verwenden, um eine .reg Datei zu generieren, die die Registrierungseinträge enthält, anstatt die Änderungen direkt an 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 /regfile
Option gibt nur Registrierungseinträge für verwaltete Klassen aus. Diese Option gibt keine Einträge oder InterfaceID
Einträge ausTypeLibID
.
Wenn Sie die /tlb
Option angeben, generiert Regasm.exe eine Typbibliothek, die die in der Assembly gefundenen Typen beschreibt, und registriert diese. 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 /tlb
Option nicht, wenn die assembly, die Sie registrieren, vom Typbibliotheksimporteur (Tlbimp.exe) erstellt wurde. Sie können keine Typbibliothek aus einer Assembly exportieren, die von einer Typbibliothek importiert wurde. Die Verwendung der /tlb
Option hat den gleichen Effekt wie die Verwendung des Typbibliotheksexporteurs (Tlbexp.exe) und Regasm.exe, mit der Ausnahme, dass Tlbexp.exe die erzeugte Typbibliothek nicht registriert. Wenn Sie die /tlb
Option zum Registrieren einer Typbibliothek verwenden, können Sie die Option mit der /tlb
/unregister
Option zum Aufheben der Registrierung der Typbibliothek verwenden. 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 /codebase
Option 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 über das Probing gefunden wird, lädt die Option die /codebase
Assembly in einem Ladekontext, der zusätzliche Überlegungen enthält, die in Assembly.LoadFromdokumentiert 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