Tlbexp.exe (exportér knihovny typů)

Exportér knihovny typů generuje knihovny typů, které popisují typy definované v sestavení Common Language Runtime.

Tento nástroj je automaticky nainstalován se sadou Visual Studio. Ke spuštění nástroje použijte Visual Studio Developer Command Prompt nebo Visual Studio Developer PowerShell.

V příkazovém řádku zadejte následující:

Syntaxe

tlbexp assemblyName [options]  

Parametry

Argument Description
Assemblyname Sestavení, pro které se má exportovat knihovna typů.
Možnost Popis
/asmpath:directory Určuje umístění, ve kterém se mají hledat sestavení. Pokud použijete tuto možnost, musíte explicitně zadat umístění, ve kterém se mají hledat odkazovaná sestavení, včetně aktuálního adresáře.

Pokud použijete možnost asmpath , exportér knihovny typů nebude hledat sestavení v globální mezipaměti sestavení (GAC).
/help Zobrazí syntaxi příkazu a možnosti nástroje.
/names:filename Určuje velikost písmen názvů v knihovně typů. Argument názvu souboru je textový soubor. Každý řádek v souboru určuje velikost písmen jednoho názvu v knihovně typů.
/nologo Potlačí zobrazení úvodního nápisu společnosti Microsoft.
/oldnames Donutí Tlbexp.exe exportovat upravené názvy typů, jestliže dojde ke konfliktu názvu typů. Všimněte si, že toto bylo výchozí chování ve verzích před rozhraním .NET Framework verze 2.0.
/out:file Určuje název souboru knihovny typů, který má být vytvořen. Pokud tento parametr vynecháte, Tlbexp.exe vygeneruje knihovnu typů se stejným názvem, jako je název sestavení (skutečný název sestavení, který nemusí být nutně stejný jako název souboru obsahujícího sestavení), a s příponou .tlb.
/ticho:warningnumber Potlačí zobrazení konkrétního upozornění. Tuto možnost nelze použít s parametrem /silent.
/silent Potlačí zobrazování zpráv o úspěšném dokončení. Tuto možnost nelze použít s parametrem /silence.
/tlbreference:typelibraryname Donutí Tlbexp.exe explicitně vyřešit odkazy typu knihovny bez konzultace s registrem. Například, pokud sestavení B odkazuje na sestavení A, můžete použít tuto možnost k poskytnutí explicitního odkazu na knihovnu typů a nespoléhat se na knihovnu typů zadanou v registru. Tlbexp.exe provádí kontroly verze pro zajištění, že verze knihovny typů bude odpovídat verzi sestavení; pokud verze knihovny neodpovídá, dojde k chybě.

Všimněte si, že možnost tlbreference stále konzultuje registr v případech, kdy ComImportAttribute se atribut použije na rozhraní, které je pak implementováno jiným typem.
/tlbrefpath:path Plně kvalifikovaná cesta na odkazovanou knihovnu typů.
/win32 Při kompilaci na 64bitovém počítači tato možnost určuje, že Tlbexp.exe vygeneruje 32bitovou knihovnu typů.
/win64 Při kompilaci na 32bitovém počítači tato možnost určuje, že Tlbexp.exe vygeneruje 64bitovou knihovnu typů.
/verbose Určuje režim podrobného vypisování; zobrazí seznam všech odkazovaných sestavení, pro která je třeba vytvořit knihovnu typů.
/? Zobrazí syntaxi příkazu a možnosti nástroje.

Poznámka

Možnosti příkazového řádku pro Tlbexp.exe nerozlišují malá a velká písmena a lze je zadat v libovolném pořadí. Pro jednoznačnou identifikaci je potřeba pouze poskytnout dostatek parametrů. Například /n je ekvivalentní souboru /nologo a /o:outfile.tlb je ekvivalentní souboru /out:outfile.tlb.

Poznámky

Nástroj Tlbexp.exe vygeneruje knihovnu typů obsahující definice typů definovaných v sestavení. Aplikace jako například Visual Basic 6.0 může použít vygenerovanou knihovnu typů ke svázání s typy rozhraní .NET definovanými v sestavení.

Důležité

Pomocí nástroje Tlbexp.exe nelze exportovat soubory metadat systému Windows (.winmd). Export sestavení modulů Windows Runtime není podporován.

Celé sestavení se převede najednou. Pomocí nástroje Tlbexp.exe nelze generovat informace o typu pro podtypy definované v sestavení.

Nelze použít Tlbexp.exe k vytvoření knihovny typů ze sestavení importovaného pomocí nástroje Type Library Importer (Tlbimp.exe). Místo toho byste měli použít původní knihovnu typů, která byla importována pomocí nástroje Tlbimp.exe. Knihovny typů můžete exportovat ze sestavení, která odkazují na sestavení, jež byla importována pomocí nástroje Tlbimp.exe. Příklady najdete v části níže.

Nástroj Tlbexp.exe umístí vytvořenou knihovnu typů do aktuálního pracovního adresáře nebo do adresáře určeného pro výstupní soubor. Jediné sestavení může způsobit vygenerování několika knihoven typů.

Nástroj Tlbexp.exe vygeneruje knihovnu typů, ale nezaregistruje ji. To je na rozdíl od nástroje registrace sestavení (Regasm.exe), který generuje a registruje knihovnu typů. Chcete-li vygenerovat a zaregistrovat knihovnu typů s modelem COM, použijte nástroj Regasm.exe.

Pokud nezadáte ani /win64 možnost/win32, Tlbexp.exe vygeneruje 32bitovou nebo 64bitovou knihovnu typů, která odpovídá typu počítače, na kterém provádíte kompilaci (32bitová nebo 64bitová verze počítače). Pro účely křížové kompilace můžete použít /win64 možnost na 32bitovém počítači k vygenerování 64bitové knihovny typů a můžete použít /win32 možnost na 64bitovém počítači k vygenerování 32bitové knihovny typů. V 32bitových knihovnách typů je hodnota nastavena SYSKIND na SYS_WIN32. V 64bitových knihovnách SYSKIND typů je hodnota nastavena na SYS_WIN64. Všechny transformace datového typu (například datové typy s velikostí ukazatele, například IntPtr a UIntPtr) se odpovídajícím způsobem převedou.

Pokud atribut použijete MarshalAsAttribute k určení SafeArraySubType hodnoty VT_UNKOWN nebo VT_DISPATCH, Tlbexp.exe ignoruje jakékoli následné použití SafeArrayUserDefinedSubType pole. Například při následujících podpisech:

[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;}  

je vygenerována následující knihovna typů:

[id(0x60020004)]  
HRESULT StructUnkSafe([out, retval] SAFEARRAY(IUnknown*)* pRetVal);  
[id(0x60020005)]  
HRESULT StructDispSafe([out, retval] SAFEARRAY(IDispatch*)* pRetVal);  

Všimněte si, že Tlbexp.exe pole ignoruje SafeArrayUserDefinedSubType .

Vzhledem k tomu, že knihovny typů nemohou pojmout všechny informace, které jsou součástí sestavení, nástroj Tlbexp.exe může zrušit některá data během exportu. Vysvětlení procesu transformace a identifikace zdroje jednotlivých informací vygenerovaných do knihovny typů naleznete v souhrnu převodu knihovny typů sestavení na knihovnu typů.

Všimněte si, že Exportér knihovny typů exportuje metody, které mají TypedReference parametry jako VARIANT, i když TypedReference objekt nemá význam v nespravovaném kódu. Při exportu metod, které mají TypedReference parametry, vývozce knihovny typů negeneruje upozornění nebo chybu a nespravovaný kód, který používá knihovnu výsledných typů, se nespustí správně.

Příklady

Následující příkaz vygeneruje knihovnu typů se stejným názvem jako sestavení nalezené v myTest.dll.

tlbexp myTest.dll  

Následující příkaz vygeneruje knihovnu typů s názvem clipper.tlb.

tlbexp myTest.dll /out:clipper.tlb  

Následující příklad ukazuje použití nástroje Tlbexp.exe k exportování knihovny typů ze sestavení, které odkazuje na sestavení, jež byla importována pomocí nástroje Tlbimp.exe.

Nejprve použijte Tlbimp.exe k importu knihovny myLib.tlb typů a uložte ji jako myLib.dll.

tlbimp myLib.tlb /out:myLib.dll  

Následující příkaz používá kompilátor jazyka C# ke kompilaci Sample.dll, odkazů myLib.dll vytvořených v předchozím příkladu.

CSC Sample.cs /reference:myLib.dll /out:Sample.dll  

Následující příkaz vygeneruje knihovnu typů pro Sample.dll odkazy myLib.dll.

tlbexp Sample.dll  

Viz také