Tlbexp.exe (Type Library Exporter-Tool)
Das Type Library Exporter-Tool generiert eine Typbibliothek, die die in einer Assembly der Common Language Runtime definierten Typen beschreibt.
Dieses Tool wird automatisch mit Visual Studio installiert. 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
tlbexp assemblyName [options]
Parameter
Argument | BESCHREIBUNG |
---|---|
assemblyName | Die Assembly, für die eine Typbibliothek exportiert werden soll. |
Option | Beschreibung |
---|---|
/asmpath: directory | Gibt den Speicherort an, der nach Assemblys durchsucht werden soll. Wenn Sie diese Option verwenden, müssen Sie die Speicherorte, die nach Assemblys durchsucht werden sollen, auf die verwiesen wird, explizit angeben, einschließlich des aktuellen Verzeichnisses. Wenn Sie die asmpath-Option verwenden, sucht das Type Library Exporter-Tool nicht nach einer Assembly im globalen Assemblycache (GAC). |
/help | Zeigt Befehlssyntax und Optionen für das Tool an. |
/names: filename | Legt die Großschreibung von Namen in einer Typbibliothek fest. Das filename-Argument entspricht einer Textdatei. Jede Zeile in der Datei legt die Großschreibung eines in der Typbibliothek enthaltenen Namens fest. |
/nologo | Unterdrückt die Anzeige des Startbanners von Microsoft. |
/oldnames | Erzwingt, dass "Tlbexp.exe" ergänzte Typnamen exportiert, wenn ein Typnamenkonflikt vorliegt. Beachten Sie, dass dies das Standardverhalten in den Vorgängerversionen von .NET Framework Version 2.0 war. |
/out: file | Gibt den Namen der zu generierenden Typbibliotheksdatei an. Wenn Sie diese Option nicht angeben, generiert "Tlbexp.exe" eine Typbibliothek mit dem Namen der Assembly (der tatsächliche Assemblyname, der nicht mit dem Namen der Datei übereinstimmen muss, in der die Assembly enthalten ist) und einer Erweiterung ".tlb". |
/silence: warningnumber |
Unterdrückt die Anzeige der angegebenen Warnung. Diese Option kann nicht zusammen mit /silent verwendet werden. |
/silent | Unterdrückt die Anzeige von Erfolgsmeldungen. Diese Option kann nicht zusammen mit /silence verwendet werden. |
/tlbreference: typelibraryname | Erzwingt, dass "Tlbexp.exe" Typbibliotheksverweise explizit auflöst, ohne auf die Registrierung zurückzugreifen. Wenn beispielsweise Assembly B auf Assembly A verweist, können Sie diese Option verwenden, um einen expliziten Typbibliotheksverweis anzugeben, statt auf die in der Registrierung angegebene Typbibliothek zurückzugreifen. "Tlbexp.exe" führt eine Versionsüberprüfung durch, um sicherzustellen, dass die Typbibliotheksversion mit der Assemblyversion übereinstimmt. Andernfalls wird ein Fehler generiert. Beachten Sie, dass die tlbreference-Option dennoch auf die Registrierung zurückgreift, wenn das ComImportAttribute-Attribut auf eine Schnittstelle angewendet wird, die anschließend von einem anderen Typ implementiert wird. |
/tlbrefpath: path | Vollqualifizierter Pfad zu einer Typbibliothek, auf die verwiesen wird. |
/win32 | Wenn auf einem 64-Bit-Computer kompiliert wird, gibt diese Option an, dass "Tlbexp.exe" eine 32-Bit-Typbibliothek generiert. |
/win64 | Wenn auf einem 32-Bit-Computer kompiliert wird, gibt diese Option an, dass „tlbexp.exe“ eine 64-Bit-Typbibliothek generiert. |
/verbose | Gibt den ausführlichen Modus an. Es wird eine Liste aller Assemblys angezeigt, auf die verwiesen wird und für die eine Typbibliothek generiert werden muss. |
/? | Zeigt Befehlssyntax und Optionen für das Tool an. |
Hinweis
Bei den Befehlszeilenoptionen für "Tlbexp.exe" wird die Groß- und Kleinschreibung nicht beachtet, und die Optionen können in beliebiger Reihenfolge angegeben werden. Geben Sie die Option einfach so weit an, dass eine eindeutige Identifizierung möglich ist. Beispiel: /n entspricht /nologo und /o: outfile.tlb entspricht /out: outfile.tlb.
Hinweise
"Tlbexp.exe" generiert eine Typbibliothek, die Definitionen der in der Assembly definierten Typen enthält. Anwendungen wie Visual Basic 6.0 können mithilfe der generierten Typbibliothek Bindungen zu den in der Assembly definierten .NET-Typen erstellen.
Wichtig
Sie können "Tlbexp.exe" nicht verwenden, um Windows-Metadatendateien (.winmd) zu exportieren. Das Exportieren von Windows Runtime-Assemblys wird nicht unterstützt.
Die Assembly wird immer vollständig konvertiert. Sie können mit Tlbexp.exekeine Typinformationen für einen Teil der in der Assembly definierten Typen generieren.
„Tlbexp.exe“ kann nicht zum Erstellen einer Typbibliothek aus einer Assembly verwendet werden, die mit dem Type Library Importer-Tool (Tlbimp.exe) importiert wurde. Stattdessen sollten Sie auf die ursprüngliche Typbibliothek verweisen, die mit "Tlbimp.exe" importiert wurde. Sie können eine Typbibliothek aus einer Assembly exportieren, die auf Assemblys verweist, die mit "Tlbimp.exe" importiert wurden. Weitere Informationen finden Sie im Abschnitt mit den Beispielen weiter unten.
"Tlbexp.exe" speichert generierte Typbibliotheken im aktuellen Arbeitsverzeichnis oder dem für die Ausgabedatei angegebenen Verzeichnis. Für eine einzelne Assembly können mehrere Typbibliotheken generiert werden.
"Tlbexp.exe" generiert eine Typbibliothek, registriert diese jedoch nicht. Dies steht im Gegensatz zum Assembly Registration-Tool (Regasm.exe), das eine Typbibliothek generiert und gleichzeitig registriert. Verwenden Sie zum Generieren einer Typbibliothek und Registrieren in COM "Regasm.exe".
Wenn Sie weder die /win32
- noch die /win64
-Option angeben, generiert "Tlbexp.exe" eine 32-Bit- oder 64-Bit-Typbibliothek, die dem Computertyp entspricht, auf dem Sie die Kompilierung ausführen (32-Bit- oder 64-Bit-Computer). Bei Kreuzkompilierungen können Sie die /win64
-Option auf einem 32-Bit-Computer zum Generieren einer 64-Bit-Typbibliothek verwenden, und Sie können die /win32
-Option auf einem 64-Bit-Computer zum Generieren einer 32-Bit-Typbibliothek verwenden. In 32-Bit-Typbibliotheken ist der SYSKIND-Wert auf SYS_WIN32 festgelegt. In 64-Bit-Typbibliotheken ist der SYSKIND-Wert auf SYS_WIN64 festgelegt. Alle Datentyptransformationen (z. B. Datentypen in Zeigergröße wie IntPtr
und UIntPtr
) werden entsprechend konvertiert.
Wenn Sie das MarshalAsAttribute-Attribut verwenden, um einen SafeArraySubType-Wert VT_UNKNOWN
oder VT_DISPATCH
anzugeben, ignoriert "Tlbexp.exe" jede nachfolgende Verwendung des Felds SafeArrayUserDefinedSubType. Betrachten Sie die folgenden Signaturen:
[return:MarshalAs(UnmanagedType.SafeArray, SafeArraySubType=VarEnum.VT_UNKNOWN, SafeArrayUserDefinedSubType=typeof(ConsoleKeyInfo))] public Array StructUnkSafe(){return null;}
[return:MarshalAs(UnmanagedType.SafeArray, SafeArraySubType=VarEnum.VT_DISPATCH, SafeArrayUserDefinedSubType=typeof(ConsoleKeyInfo))] public Array StructDispSafe(){return null;}
Die folgende Typbibliothek wird generiert:
[id(0x60020004)]
HRESULT StructUnkSafe([out, retval] SAFEARRAY(IUnknown*)* pRetVal);
[id(0x60020005)]
HRESULT StructDispSafe([out, retval] SAFEARRAY(IDispatch*)* pRetVal);
Beachten Sie, dass "Tlbexp.exe" das Feld SafeArrayUserDefinedSubType ignoriert.
Da Typbibliotheken nicht alle in den Assemblys gefundenen Informationen aufnehmen können, verwirft "Tlbexp.exe" während des Exportvorgangs möglicherweise einige Daten. Eine Erläuterung des Transformationsprozesses sowie Informationen darüber, wie Sie die Quelle der Informationen identifizieren, die an eine Typbibliothek ausgegeben werden, finden Sie unter Zusammenfassung: Konvertieren einer Assembly in eine Typbibliothek.
Beachten Sie, dass das Type Library Exporter-Tool Methoden exportiert, die über TypedReference-Parameter als VARIANT
verfügen, obwohl das TypedReference-Objekt in nicht verwaltetem Code keine Bedeutung hat. Wenn Sie Methoden exportieren, die über TypedReference-Parameter verfügen, generiert das Type Library Exporter-Tool keine Warnung und keinen Fehler, und nicht verwalteter Code, der die resultierende Typbibliothek verwendet, wird nicht ordnungsgemäß ausgeführt.
Beispiele
Der folgende Befehl generiert eine Typbibliothek mit dem Namen der in myTest.dll
gefundenen Assembly.
tlbexp myTest.dll
Der folgende Befehl generiert eine Typbibliothek mit dem Namen clipper.tlb
.
tlbexp myTest.dll /out:clipper.tlb
Das folgende Beispiel veranschaulicht die Verwendung von "Tlbexp.exe" zum Exportieren einer Typbibliothek aus einer Assembly, die auf andere mit "Tlbimp.exe" importierte Assemblys verweist.
Importieren Sie zunächst mit "Tlbimp.exe" die Typbibliothek myLib.tlb
, und speichern Sie sie als myLib.dll
.
tlbimp myLib.tlb /out:myLib.dll
Der folgende Befehl verwendet den C#-Compiler, um die Sample.dll
im vorherigen Beispiel erstellten Verweise myLib.dll
zu kompilieren.
CSC Sample.cs /reference:myLib.dll /out:Sample.dll
Der folgende Befehl generiert eine Typbibliothek für Sample.dll
, die auf myLib.dll
verweist.
tlbexp Sample.dll