Udostępnij za pośrednictwem


Tlbexp.exe (Eksporter biblioteki typów)

Eksporter biblioteki typów generuje bibliotekę typów, która opisuje typy zdefiniowane w zestawie środowiska uruchomieniowego języka wspólnego.

To narzędzie jest instalowane automatycznie z programem Visual Studio. Aby uruchomić narzędzie, użyj wiersza polecenia dla deweloperów programu Visual Studio lub programu Visual Studio Developer PowerShell.

W wierszu polecenia wpisz:

Składnia

tlbexp assemblyName [options]  

Parametry

Argument opis
assemblyName Zestaw, dla którego ma zostać wyeksportowana biblioteka typów.
Opcja Opis
/asmpath: katalog Określa lokalizację do przeszukania pod kątem zestawów. W przypadku użycia tej opcji należy jawnie określić lokalizacje do przeszukiwania pod kątem zestawów, do których się odwoływano, łącznie z bieżącym katalogiem.

Jeśli używasz opcji asmpath , eksporter biblioteki typów nie będzie szukać zestawu w globalnej pamięci podręcznej zestawów (GAC).
/Pomoc Wyświetla składnię polecenia i opcje narzędzia.
/names: nazwa pliku Określa wielkość liter nazw w bibliotece typów. Argument nazwy pliku jest plikiem tekstowym. Każdy wiersz w pliku określa wielkość liter jednej nazwy w bibliotece typów.
/nologo Pomija wyświetlanie transparentu startowego firmy Microsoft.
/oldnames Wymusza na Tlbexp.exe eksport uzupełnionych nazw typu, gdy występuje konflikt nazw typu. Należy pamiętać, że było to domyślne zachowanie w wersjach wcześniejszych niż .NET Framework w wersji 2.0.
/out: plik Określa nazwę pliku biblioteki typów do wygenerowania. Jeżeli pominięto tę opcję, Tlbexp.exe generuje bibliotekę typów o takiej samej nazwie co zestaw (rzeczywista nazwa zestawu, która niekoniecznie jest taka sama jak nazwa pliku zawierającego zestaw) i rozszerzenie .tlb.
/cisza: warningnumber Pomija wyświetlanie określonego ostrzeżenia. Tej opcji nie można używać z /silent.
/silent Pomija wyświetlanie komunikatów o sukcesie. Tej opcji nie można używać z /silence.
/tlbreference: typelibraryname Wymusza na Tlbexp.exe jawne rozwiązanie odwołań do biblioteki typów bez konsultacji z rejestrem. Na przykład jeśli zestaw B odwołuje się do zestawu A, można użyć tej opcji, aby dostarczyć jawne odwołanie do biblioteki typów, zamiast polegać na bibliotece typów określonej w rejestrze. Tlbexp.exe wykonuje sprawdzenie wersji, aby zapewnić zgodność wersji biblioteki typów z wersją zestawu; w przeciwnym wypadku wygeneruje błąd.

Należy pamiętać, że opcja tlbreference nadal konsultuje się z rejestrem w przypadkach, gdy ComImportAttribute atrybut jest stosowany do interfejsu, który jest następnie implementowany przez inny typ.
/tlbrefpath: ścieżka W pełni kwalifikowana ścieżka do biblioteki typów, do którego się odwoływano.
/win32 Podczas kompilowania na komputerze 64-bitowym ta opcja określa, że Tlbexp.exe generuje biblioteki typów 32-bitowych.
/win64 Podczas kompilowania na komputerze 32-bitowym ta opcja określa, że Tlbexp.exe generuje bibliotekę typów 64-bitowych.
/verbose Określa tryb informacji pełnej; wyświetla listę wszystkich zestawów, do których się odwoływano i dla których biblioteka typów musi zostać wygenerowana.
/? Wyświetla składnię polecenia i opcje narzędzia.

Uwaga

W opcjach wiersza polecenia programu Tlbexp.exe nie jest rozróżniana wielkość liter i opcje mogą być podawane w dowolnej kolejności. Wystarczy określić część nazwy opcji umożliwiającą jej jednoznaczną identyfikację. Na przykład /n jest odpowiednikiem /nologo, a /o: outfile.tlb jest odpowiednikiem /out: outfile.tlb.

Uwagi

Tlbexp.exe generuje bibliotekę typów, która zawiera definicje typów zdefiniowanych w zestawie. Aplikacje, takie jak Visual Basic 6.0, mogą użyć wygenerowanej biblioteki typów, aby utworzyć powiązanie z typami .NET zdefiniowanymi w zestawie.

Ważne

Nie można użyć Tlbexp.exe do eksportowania plików metadanych (.winmd) systemu Windows. Eksportowanie zestawów środowiska wykonawczego systemu Windows nie jest obsługiwane.

Cały zespół jest konwertowany na raz. Nie można użyć Tlbexp.exe do generowania informacji o typie dla podzbioru typów zdefiniowanych w zestawie.

Nie można użyć Tlbexp.exe do utworzenia biblioteki typów z zestawu zaimportowanego przy użyciu importera biblioteki typów (Tlbimp.exe). Zamiast tego należy odnieść się do oryginalnej biblioteki typów, która została importowana przy użyciu Tlbimp.exe. Można eksportować bibliotekę typów z zestawu, który odwołuje się do zestawów, które zostały importowane przy użyciu Tlbimp.exe. Zobacz przykłady poniżej.

Tlbexp.exe umieszcza wygenerowane biblioteki typów w bieżącym katalogu roboczym lub katalogu określonym dla pliku wyjściowego. Pojedynczy zestaw może spowodować wygenerowanie kilku bibliotek typów.

Tlbexp.exe generuje bibliotekę typów, ale nie rejestruje jej. Jest to w przeciwieństwie do narzędzia rejestracji zestawów (Regasm.exe), które generuje i rejestruje bibliotekę typów. Aby wygenerować i zarejestrować bibliotekę typów w modelu COM, należy użyć Regasm.exe.

Jeśli nie określisz /win32 opcji lub /win64 , Tlbexp.exe generuje bibliotekę typu 32-bitowego lub 64-bitowego odpowiadającą typowi komputera, na którym wykonujesz kompilację (komputer 32-bitowy lub 64-bitowy). Do celów kompilacji krzyżowej można użyć /win64 opcji na komputerze 32-bitowym do wygenerowania biblioteki typów 64-bitowych i można użyć /win32 opcji na komputerze 64-bitowym do wygenerowania biblioteki typów 32-bitowych. W bibliotekach typów 32-bitowych wartość jest ustawiona SYSKIND na SYS_WIN32wartość . W bibliotekach typów 64-bitowych wartość jest ustawiona SYSKIND na SYS_WIN64wartość . Wszystkie przekształcenia typów danych (na przykład typy danych o rozmiarze wskaźnika, takie jak IntPtr i UIntPtr), są odpowiednio konwertowane.

Jeśli używasz atrybutu MarshalAsAttribute do określenia SafeArraySubType wartości VT_UNKNOWN lub VT_DISPATCH, Tlbexp.exe ignoruje wszelkie kolejne użycie SafeArrayUserDefinedSubType pola. Na przykład w następujących podpisach:

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

generowana jest następująca biblioteka typów:

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

Należy pamiętać, że Tlbexp.exe ignoruje SafeArrayUserDefinedSubType pole.

Ponieważ biblioteki typów nie mogą pomieścić wszystkich informacji znajdujących się w zestawach, Tlbexp.exe może odrzucić niektóre dane podczas procesu eksportu. Aby uzyskać wyjaśnienie procesu przekształcania i identyfikacji źródła poszczególnych informacji emitowanych do biblioteki typów, zobacz Podsumowanie konwersji zestawu na bibliotekę typów.

Należy zauważyć, że metody eksportera biblioteki typów, które mają TypedReference parametry jako VARIANT, mimo że TypedReference obiekt nie ma znaczenia w kodzie niezarządzanych. Podczas eksportowania metod, które mają TypedReference parametry, eksporter biblioteki typów nie wygeneruje ostrzeżenia ani błędu, a niezarządzany kod używający wynikowej biblioteki typów nie będzie działać prawidłowo.

Przykłady

Następujące polecenie generuje bibliotekę typów o takiej samej nazwie jak zestaw znaleziony w pliku myTest.dll.

tlbexp myTest.dll  

Następujące polecenie generuje bibliotekę typów o nazwie clipper.tlb.

tlbexp myTest.dll /out:clipper.tlb  

Poniższy przykład ilustruje użycie Tlbexp.exe do eksportowania biblioteki typów z zestawu, który odwołuje się do zestawów importowanych przy użyciu Tlbimp.exe.

Najpierw użyj Tlbimp.exe, aby zaimportować bibliotekę myLib.tlb typów i zapisać ją jako myLib.dll.

tlbimp myLib.tlb /out:myLib.dll  

Następujące polecenie używa kompilatora języka C#, aby skompilować Sample.dllelement , który odwołuje myLib.dll się do utworzonego w poprzednim przykładzie.

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

Następujące polecenie generuje bibliotekę typów dla Sample.dll tego odwołania myLib.dll.

tlbexp Sample.dll  

Zobacz też