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.dll
souboru .
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.dll
odkazy 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