Sdílet prostřednictvím


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.

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

Syntaxe

tlbexp assemblyName [options]  

Parametry

Argument Popis
assemblyName Sestavení, pro které se má exportovat knihovna typů.
Možnost Popis
/asmpath: adresář 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).
/Pomoc Zobrazí syntaxi příkazu a možnosti nástroje.
/names: název souboru 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: soubor 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.
/umlčet: warningnumber Potlačí zobrazení konkrétního upozornění. Tuto možnost nelze použít s parametrem /silent.
/tichý Potlačí zobrazování zpráv o úspěšném dokončení. Tuto možnost nelze použít s parametrem /ticho.
/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 v případě, že ComImportAttribute se atribut použije na rozhraní, které je následně implementováno jiným typem.
/tlbrefpath: cesta 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í /nologo a /o: outfile.tlb je ekvivalentní /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í, které bylo importováno 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 pro registraci sestavení (Regasm.exe), který generuje i registruje knihovnu typů. Chcete-li vygenerovat a zaregistrovat knihovnu typů s modelem COM, použijte nástroj Regasm.exe.

Pokud nezadáte ani /win32 /win64 možnost, 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 pomocí /win64 možnosti na 32bitovém počítači vygenerovat 64bitovou knihovnu typů a pomocí /win32 možnosti na 64bitovém počítači vygenerovat 32bitovou knihovnu typů. V 32bitových knihovnách typů je hodnota nastavena SYSKIND na SYS_WIN32hodnotu . V 64bitových knihovnách typů je hodnota nastavena SYSKIND na SYS_WIN64hodnotu . 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 použijete MarshalAsAttribute atribut k určení SafeArraySubType hodnoty VT_UNKNOWN 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í do knihovny 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. Když exportujete metody s TypedReference parametry, exportér knihovny typů nevygeneruje upozornění nebo chybu a nespravovaný kód, který používá výslednou knihovnu typů, nebude správně spuštěn.

Příklady

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

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 pomocí kompilátoru jazyka C# kompiluje Sample.dllodkazy myLib.dll vytvořené 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é