Tlbexp.exe (Type Library Exporter-Tool)

Aktualisiert: April 2011

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 und mit dem Windows SDK installiert. Um das Tool auszuführen, empfiehlt es sich, dass Sie die Visual Studio-Eingabeaufforderung oder Windows SDK-Eingabeaufforderung (CMD-Shell) verwenden. Mit diesen Hilfsprogrammen können Sie das Tool problemlos ausführen, ohne in den Installationsordner zu navigieren. Weitere Informationen finden Sie unter Visual Studio- und Windows SDK-Eingabeaufforderungen.

  • Wenn Visual Studio auf dem Computer installiert ist: Klicken Sie auf der Taskleiste auf Start, All Programs, Visual Studio und Visual Studio Tools, und klicken Sie dann auf Visual Studio Command Prompt.

    – oder –

    Wenn das Windows SDK auf Ihrem Computer installiert ist: Klicken Sie auf der Taskleiste auf Start, All Programs, klicken Sie auf den Ordner für das Windows SDK, und klicken anschließend auf Command Prompt (oder CMD Shell).

  • Geben Sie an der Eingabeaufforderung Folgendes ein:

tlbexp assemblyName [/out:file] [/nologo] [/silent] [/verbose]

Parameter

Argument

Beschreibungen

assemblyName

Die Assembly, aus der eine Typbibliothek exportiert werden soll.

Option

Beschreibungen

/asmpath:Verzeichnis

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 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:Datei

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 Befehlssyntax und Optionen für das Tool an.

HinweisHinweis

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. 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 unten.

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

TypeLibExporterFlags

Regasm.exe (Assembly Registration-Tool)

Tlbimp.exe (Type Library Importer-Tool)

Visual Studio- und Windows SDK-Eingabeaufforderungen

Weitere Ressourcen

.NET Framework-Tools

Zusammenfassung: Konvertieren einer Assembly in eine Typbibliothek

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

April 2011

Hinzugefügte Informationen zur Verwendung der Visual Studio- und Windows SDK-Eingabeaufforderungen.

Informationsergänzung.