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 programu Visual Studio wiersz polecenia dla deweloperów lub Visual Studio Developer PowerShell.

W wierszu polecenia wpisz następujące polecenie:

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.

W przypadku użycia opcji asmpath eksporter biblioteki typów nie będzie szukać zestawu w globalnej pamięci podręcznej zestawów (GAC).
/help 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 zauważyć, że było to zachowanie domyślne 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 /ciszenia.
/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.

Pamiętaj, że opcja tlbreference nadal konsultuje się z rejestrem w przypadkach, gdy atrybut jest stosowany do interfejsu, który jest następnie ComImportAttribute 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, 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, i /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 tworzenia biblioteki typów z zestawu, który został zaimportowany 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 zestawu (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 opcji lub , program Tlbexp.exe wygeneruje bibliotekę typów 32-bitową lub 64-bitową odpowiadającą typowi komputera, na którym jest kompilowana /win32 /win64 (komputer 32-bitowy lub 64-bitowy). Na potrzeby kompilacji krzyżowej można użyć opcji na komputerze 32-bitowym w celu wygenerowania biblioteki typów 64-bitowych, a opcji na komputerze 64-bitowym można użyć do wygenerowania biblioteki typów /win64 /win32 32-bitowych. W bibliotekach typów 32-bitowych SYSKIND wartość jest ustawiona na SYS_WIN32 . W bibliotekach typów 64-bitowych SYSKIND wartość jest ustawiona na SYS_WIN64 . Wszystkie przekształcenia typu danych (na przykład typy danych o rozmiarze wskaźnika, takie jak IntPtr i ) są odpowiednio UIntPtr konwertowane.

Jeśli używasz atrybutu do określenia wartości lub , Tlbexp.exe ignoruje każde kolejne MarshalAsAttribute SafeArraySubType użycie VT_UNKOWN VT_DISPATCH 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);  

Pamiętaj, 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 biblioteki zestawu na typ.

Należy pamiętać, że eksporter biblioteki typów eksportuje metody, które mają parametry w parametrze , mimo że obiekt nie ma znaczenia w kodzie TypedReference VARIANT TypedReference niezaimażowym. W przypadku eksportowania metod, które mają parametry, eksporter biblioteki typów nie wygeneruje ostrzeżenia ani błędu, a kod niezaimażowany korzystający z wynikowej biblioteki typów TypedReference 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ę typów myLib.tlb i zapisać ją jako myLib.dll .

tlbimp myLib.tlb /out:myLib.dll  

Następujące polecenie używa kompilatora języka C# do skompilowania Sample.dll, odwołań myLib.dll utworzonych w poprzednim przykładzie.

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

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

tlbexp Sample.dll  

Zobacz też