Tlbexp.exe (típuskódtár-exportőr)
A Típustár-exportőr létrehoz egy típustárat, amely egy közös nyelvi futtatókörnyezet-szerelvényben definiált típusokat írja le.
Ez az eszköz automatikusan telepítve van a Visual Studióval. Az eszköz futtatásához használja a Visual Studio fejlesztői parancssorát vagy a Visual Studio Developer PowerShellt.
A parancssorba írja be a következőt:
Syntax
tlbexp assemblyName [options]
Paraméterek
Argumentum | Leírás |
---|---|
assemblyName | Az a szerelvény, amelyhez típustárat szeretne exportálni. |
Lehetőség | Leírás |
---|---|
/asmpath: directory | Megadja a szerelvények keresésének helyét. Ha ezt a lehetőséget használja, explicit módon meg kell adnia a hivatkozott szerelvények keresésének helyét, beleértve az aktuális könyvtárat is. Az asmpath beállítás használatakor a típustár-exportőr nem fog szerelvényt keresni a globális szerelvény-gyorsítótárban (GAC). |
/segítség | Megjeleníti az eszköz parancsszintaxisát és beállításait. |
/names: filename | A típustárban lévő nevek nagybetűsítését adja meg. A fájlnév argumentum egy szövegfájl. A fájl minden sora egy név nagybetűsítését adja meg a típustárban. |
/nologo | Letiltja a Microsoft indítási szalagcímének megjelenítését. |
/oldnames | Arra kényszeríti Tlbexp.exe, hogy exportálja a dekorált típusneveket, ha a típusnév ütközik. Vegye figyelembe, hogy ez volt az alapértelmezett viselkedés a .NET-keretrendszer 2.0-s verzió előtti verziókban. |
/out: fájl | Megadja a létrehozandó kódtárfájl nevét. Ha kihagyja ezt a beállítást, Tlbexp.exe létrehoz egy olyan típustárat, amelynek neve megegyezik a szerelvény nevével (a szerelvény tényleges neve, amely nem feltétlenül ugyanaz, mint a szerelvényt tartalmazó fájl) és egy .tlb kiterjesztéssel. |
/csend: warningnumber |
Letiltja a megadott figyelmeztetés megjelenítését. Ez a beállítás nem használható a /silent billentyűvel. |
/csendes | Letiltja a sikeres üzenetek megjelenítését. Ez a beállítás nem használható a /silence beállítással. |
/tlbreference: typelibraryname | Kényszeríti Tlbexp.exe, hogy explicit módon oldja fel a típustár-hivatkozásokat a beállításjegyzéktel való konzultáció nélkül. Ha például a B szerelvény az A szerelvényre hivatkozik, ezzel a beállítással explicit típustár-referenciát adhat meg ahelyett, hogy a beállításjegyzékben megadott típustárra támaszkodik. Tlbexp.exe verzióellenőrzést végez annak ellenőrzéséhez, hogy a típustár verziója megegyezik-e a szerelvény verziójával; ellenkező esetben hibát okoz. Vegye figyelembe, hogy a tlbreference beállítás továbbra is a beállításjegyzékben található olyan esetekben, amikor az ComImportAttribute attribútumot egy másik típus által implementált felületre alkalmazza a rendszer. |
/tlbrefpath: elérési út | Egy hivatkozott típustár teljes elérési útja. |
/win32 | 64 bites számítógépen történő összeállításkor ez a beállítás azt határozza meg, hogy Tlbexp.exe 32 bites típusú kódtárat hozzon létre. |
/win64 | 32 bites számítógépen történő összeállításkor ez a beállítás azt határozza meg, hogy Tlbexp.exe 64 bites típusú kódtárat hozzon létre. |
/bőbeszédű | Részletes módot ad meg; megjeleníti azoknak a hivatkozott szerelvényeknek a listáját, amelyekhez típustárat kell létrehozni. |
/? | Megjeleníti az eszköz parancsszintaxisát és beállításait. |
Feljegyzés
A Tlbexp.exe parancssori beállításai nem érzékenyek a kis- és nagybetűkre, és bármilyen sorrendben megadható. Csak annyi lehetőséget kell megadnia, hogy egyedileg azonosítsa azt. A /n értéke például a /nologo, a /o: outfile.tlb pedig a /out: outfile.tlb értéknek felel meg.
Megjegyzések
Tlbexp.exe létrehoz egy típustárat, amely a szerelvényben definiált típusok definícióit tartalmazza. Az olyan alkalmazások, mint a Visual Basic 6.0, a létrehozott típustár használatával kapcsolódhatnak a szerelvényben definiált .NET-típusokhoz.
Fontos
Windows metaadatfájlok (.winmd) exportálásához nem használhat Tlbexp.exe. A Windows-futtatókörnyezet szerelvények exportálása nem támogatott.
A teljes szerelvényt egyszerre konvertálja a rendszer. A Tlbexp.exe nem használhatja a szerelvényben definiált típusok egy részhalmazának típusadatainak létrehozásához.
A Tlbexp.exe nem használható típustár létrehozásához olyan szerelvényből, amelyet a Típustár importáló (Tlbimp.exe) használatával importáltak. Ehelyett a Tlbimp.exe importált eredeti típustárra kell hivatkoznia. Exportálhat egy típustárat egy olyan szerelvényből, amely Tlbimp.exe használatával importált szerelvényekre hivatkozik. Lásd az alábbi példákat.
Tlbexp.exe a létrehozott típustárakat az aktuális munkakönyvtárban vagy a kimeneti fájlhoz megadott könyvtárban helyezi el. Egyetlen szerelvény több típuskódtárat is létrehozhat.
Tlbexp.exe létrehoz egy típustárat, de nem regisztrálja. Ez ellentétben áll a szerelvényregisztrációs eszközzel (Regasm.exe), amely egyaránt létrehoz és regisztrál egy típustárat. A COM-val való típustár létrehozásához és regisztrálásához használja a Regasm.exe.
Ha nem adja meg sem a /win32
/win64
beállítást, Tlbexp.exe létrehoz egy 32 bites vagy 64 bites típusú kódtárat, amely megfelel annak a számítógépnek, amelyen a fordítást végzi (32 bites vagy 64 bites számítógép). Keresztfordítási célokra a /win64
32 bites számítógépen lévő beállítással 64 bites típustárat hozhat létre, a /win32
64 bites számítógépen pedig 32 bites típustárat hozhat létre. A 32 bites típusú kódtárakban az érték a SYSKIND következőre SYS_WIN32van állítva: . A 64 bites típusú kódtárakban az érték a SYSKIND következőre SYS_WIN64van állítva: . A rendszer minden adattípus-átalakítást (például mutatóméretű adattípust, például IntPtr
és UIntPtr
) megfelelően konvertál.
Ha az attribútumot a MarshalAsAttribute mező értékének VT_UNKNOWN
megadására SafeArraySubType használja, Tlbexp.exe figyelmen kívül hagyja a SafeArrayUserDefinedSubType VT_DISPATCH
mező további használatát. Például a következő aláírások alapján:
[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;}
a rendszer a következő típustárat hozza létre:
[id(0x60020004)]
HRESULT StructUnkSafe([out, retval] SAFEARRAY(IUnknown*)* pRetVal);
[id(0x60020005)]
HRESULT StructDispSafe([out, retval] SAFEARRAY(IDispatch*)* pRetVal);
Vegye figyelembe, hogy Tlbexp.exe figyelmen kívül hagyja a SafeArrayUserDefinedSubType mezőt.
Mivel a típuskódtárak nem tudják befogadni a szerelvényekben található összes információt, előfordulhat, hogy Tlbexp.exe egyes adatokat elvetnek az exportálási folyamat során. Az átalakítási folyamat magyarázatáért és a típustáraknak kibocsátott egyes információk forrásának azonosításáért tekintse meg a szerelvény típustár-konvertálási összegzését.
Vegye figyelembe, hogy a típustár-exportőr olyan metódusokat exportál, amelyek paraméterekkel VARIANT
rendelkeznekTypedReference, annak ellenére, hogy az TypedReference objektumnak nincs jelentése a nem felügyelt kódban. Paraméterekkel rendelkező TypedReference metódusok exportálásakor a típustár-exportőr nem generál figyelmeztetést vagy hibát, és az eredményül kapott típustárat használó nem felügyelt kód nem fog megfelelően futni.
Példák
Az alábbi parancs létrehoz egy olyan típustárat, amelynek a neve megegyezik a szerelvényben myTest.dll
található névvel.
tlbexp myTest.dll
Az alábbi parancs létrehoz egy típustárat a névvel clipper.tlb
.
tlbexp myTest.dll /out:clipper.tlb
Az alábbi példa azt szemlélteti, hogy Tlbexp.exe használatával exportálhat egy típustárat egy olyan szerelvényből, amely a Tlbimp.exe használatával importált szerelvényekre hivatkozik.
Először használja a Tlbimp.exe a típustár myLib.tlb
importálásához és mentéséhez myLib.dll
.
tlbimp myLib.tlb /out:myLib.dll
Az alábbi parancs a C#-fordítóval fordítja le az Sample.dll,
előző példában létrehozott hivatkozásokat myLib.dll
.
CSC Sample.cs /reference:myLib.dll /out:Sample.dll
Az alábbi parancs létrehoz egy típustárat a hivatkozásokhoz Sample.dll
myLib.dll
.
tlbexp Sample.dll