Type Library Exporter-Tool (Tlbexp.exe)
Aktualisiert: November 2007
Das Type Library Exporter-Tool generiert eine Typbibliothek, die die in einer Assembly der Common Language Runtime definierten Typen beschreibt.
tlbexp assemblyName [/out:file] [/nologo] [/silent] [/verbose]
Parameter
Argument |
Beschreibung |
---|---|
assemblyName |
Die Assembly, aus der 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, an denen nach Assemblys gesucht werden soll, auf die verwiesen wird, explizit angeben, einschließlich des aktuellen Verzeichnisses. Wenn Sie die asmpath-Option verwenden, sucht der Typbibliothekexporter nicht nach einer Assembly im globalen Assemblycache (GAC). |
/help |
Zeigt die 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. Durch die einzelnen Zeilen in der Datei wird die Großschreibung eines in der Typbibliothek enthaltenen Namens festgelegt. |
/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 der Erweiterung .tlb. |
/silent |
Unterdrückt die Anzeige von Erfolgsmeldungen. |
/tlbreference:typelibraryname |
Erzwingt, dass Tlbexp.exe Typbibliotheksverweise explizit auflöst, ohne auf die Registrierung zurückzugreifen. Wenn Assembly B beispielsweise 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 aus, 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 die Befehlssyntax und Optionen für das Tool an. |
Tipp
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 einfach die gewünschte Option oder das entsprechende Kürzel an, um diese eindeutig zu kennzeichnen. /n entspricht z. B. /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.
Die Assembly wird immer vollständig konvertiert. Sie können mit Tlbexp.exe keine 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. Verwenden Sie stattdessen die ursprüngliche Typbibliothek, die mit Tlbimp.exe importiert wurde. Sie können eine Typbibliothek aus einer Assembly exportieren, in der auf andere mit Tlbimp.exe importierte Assemblys verwiesen wird. Weitere Informationen finden Sie im folgenden Abschnitt.
Tlbexp.exe platziert 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 ist ein Unterschied 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 nicht die Option /win32 oder /win64 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). Für kompilierungsübergreifende Zwecke können Sie die Option /win64 auf einem 32-Bit-Computer zum Generieren einer 64-Bit-Typbibliothek verwenden, und Sie können die Option /win32 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 entprechend konvertiert.
Wenn Sie das MarshalAsAttribute-Attribut verwenden, um einen SafeArraySubType-Wert von VT_UNKOWN oder VT_DISPATCH anzugeben, ignoriert Tlbexp.exe jede nachfolgende Verwendung des FeldsSafeArrayUserDefinedSubType. 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 vorgefundenen Informationen aufnehmen können, verwirft Tlbexp.exe während des Exportvorgangs ggf. einige Daten. Eine Erläuterung des Umwandlungsprozesses 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 der Typbibliothekexporter 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 der Typbibliothekexporter keine Warnung und keinen Fehler, und nicht verwalteter Code, der die resultierende Typbibliothek verwendet, wird nicht ordnungsgemäß ausgeführt.
Der Typbibliothekexporter wird unter Microsoft Windows 2000 und höher unterstützt.
Beispiele
Der folgende Befehl generiert eine Typbibliothek mit dem Namen der Assembly in myTest.dll.
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 Verweise auf andere mit Tlbimp.exe importierte Assemblys enthält.
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 zum Kompilieren von Sample.dll,, in der auf die im vorhergehenden Beispiel erstellte myLib.dll verwiesen wird.
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
Siehe auch
Referenz
Assembly Registration-Tool (Regasm.exe)
Type Library Importer-Tool (Tlbimp.exe)
Weitere Ressourcen
Zusammenfassung: Konvertieren einer Assembly in eine Typbibliothek