Tlbexp.exe (Pengekspor Pustaka Jenis)

Pengekspor Pustaka Jenis menghasilkan pustaka jenis yang menjelaskan jenis yang ditentukan dalam rakitan runtime bahasa umum.

Alat ini otomatis terpasang dengan Visual Studio. Untuk menjalankan alat, gunakan Prompt Perintah Pengembang Visual Studio atau PowerShell Pengembang Visual Studio.

Pada perintah, masukkan berikut ini:

Sintaks

tlbexp assemblyName [options]  

Parameter

Argumen Deskripsi
assemblyName Rakitan yang mengekspor pustaka jenis.
Opsi Deskripsi
/asmpath:directory Menentukan lokasi untuk mencari rakitan. Jika Anda menggunakan opsi ini, Anda harus secara eksplisit menentukan lokasi untuk mencari rakitan yang direferensikan, termasuk direktori saat ini.

Saat Anda menggunakan opsi asmpath, Pengekspor Pustaka Jenis tidak akan mencari rakitan di cache rakitan global (GAC).
/help Menampilkan sintaks perintah dan opsi untuk alat ini.
/names:filename Menentukan kapitalisasi nama di pustaka jenis. Argumen filename adalah file teks. Setiap baris dalam file menentukan kapitalisasi satu nama di perpustakaan tipe.
/nologo Menekan tampilan banner startup Microsoft.
/oldnames Memaksa Tlbexp.exe untuk mengekspor nama tipe yang didekorasi jika ada konflik nama tipe. Perhatikan bahwa ini adalah perilaku default dalam versi sebelum .NET Framework versi 2.0.
/out:file Menentukan nama file pustaka jenis yang akan dihasilkan. Jika Anda menghilangkan opsi ini, Tlbexp.exe menghasilkan pustaka jenis dengan nama yang sama dengan rakitan (nama rakitan sebenarnya, yang mungkin tidak harus sama dengan file yang berisi rakitan) dan ekstensi .tlb.
/silence:warningnumber Menekan tampilan peringatan yang ditentukan. Opsi ini tidak dapat digunakan dengan /silent.
/silent Menekan tampilan pesan sukses. Opsi ini tidak dapat digunakan dengan /silence.
/tlbreference:typelibraryname Memaksa Tlbexp.exe untuk secara eksplisit menyelesaikan referensi pustaka jenis tanpa berkonsultasi dengan registri. Misalnya, jika rakitan B mereferensikan rakitan A, Anda dapat menggunakan opsi ini untuk menyediakan referensi pustaka jenis eksplisit, daripada mengandalkan pustaka jenis yang ditentukan dalam registri. Tlbexp.exe melakukan pemeriksaan versi untuk memastikan bahwa versi pustaka jenis cocok dengan versi rakitan; jika tidak, itu menghasilkan kesalahan.

Perhatikan bahwa opsi tlbreference masih berkonsultasi dengan registri jika atribut ComImportAttribute diterapkan ke antarmuka yang kemudian diimplementasikan oleh jenis lain.
/tlbrefpath:path Jalur yang sepenuhnya memenuhi syarat ke pustaka jenis yang direferensikan.
win32 Saat mengkompilasi di komputer 64-bit, opsi ini menetapkan bahwa Tlbexp.exe menghasilkan pustaka jenis 32-bit.
/win64 Saat mengkompilasi di komputer 32-bit, opsi ini menetapkan bahwa Tlbexp.exe menghasilkan pustaka jenis 64-bit.
/verbose Menentukan mode verbose; menampilkan daftar rakitan yang direferensikan yang membutuhkan pustaka jenis untuk dibuat.
/? Menampilkan sintaks perintah dan opsi untuk alat ini.

Catatan

Opsi baris perintah untuk Tlbexp.exe tidak peka huruf besar-kecil dan dapat diberikan dalam urutan apa pun. Anda hanya perlu menentukan opsi yang cukup untuk mengidentifikasinya secara unik. Misalnya, /n sama dengan /nologo, dan /o:outfile.tlb sama dengan /out :outfile.tlb.

Keterangan

Tlbexp.exe menghasilkan pustaka jenis yang berisi definisi jenis yang ditentukan dalam rakitan. Aplikasi seperti Visual Basic 6.0 dapat menggunakan pustaka jenis yang dihasilkan untuk mengikat jenis .NET yang ditentukan dalam rakitan.

Penting

Anda tidak dapat menggunakan Tlbexp.exe untuk mengekspor file metadata (.winmd) Windows. Mengekspor rakitan Windows Runtime tidak didukung.

Seluruh perakitan dikonversi sekaligus. Anda tidak dapat menggunakan Tlbexp.exe untuk menghasilkan informasi jenis untuk subset dari jenis yang ditentukan dalam rakitan.

Anda tidak dapat menggunakan Tlbexp.exe untuk menghasilkan pustaka jenis dari rakitan yang diimpor menggunakan Pengimpor Pustaka Jenis (Tlbimp.exe). Sebagai gantinya, Anda harus merujuk ke pustaka jenis asli yang diimpor dengan Tlbimp.exe. Anda dapat mengekspor pustaka jenis dari rakitan yang mereferensikan rakitan yang diimpor menggunakan Tlbimp.exe. Lihat bagian contoh di bawah ini.

Tlbexp.exe menempatkan pustaka jenis yang dihasilkan di direktori kerja saat ini atau direktori yang ditentukan untuk file keluaran. Perakitan tunggal dapat menyebabkan beberapa jenis pustaka yang akan dihasilkan.

Tlbexp.exe menghasilkan pustaka jenis tetapi tidak mendaftarkannya. Ini berbeda dengan Alat Pendaftaran Rakitan (Regasm.exe), yang menghasilkan dan mendaftarkan pustaka jenis. Untuk menghasilkan dan mendaftarkan pustaka jenis dengan COM, gunakan Regasm.exe.

Jika Anda tidak menentukan opsi /win32 atau /win64, Tlbexp.exe menghasilkan pustaka jenis 32-bit atau 64-bit yang sesuai dengan jenis komputer tempat Anda melakukan kompilasi (komputer 32-bit atau 64-bit). Untuk tujuan kompilasi silang, Anda dapat menggunakan opsi /win64 pada komputer 32-bit untuk menghasilkan pustaka jenis 64-bit dan Anda dapat menggunakan opsi /win32 pada komputer 64-bit untuk menghasilkan pustaka jenis 32-bit. Di pustaka jenis 32-bit, nilai SYSKIND diatur ke SYS_WIN32. Di pustaka jenis 64-bit, nilai SYSKIND diatur ke SYS_WIN64. Semua transformasi jenis data (misalnya, jenis data berukuran pointer seperti IntPtr dan UIntPtr) dikonversi dengan tepat.

Jika Anda menggunakan atribut MarshalAsAttribute untuk menentukan nilai SafeArraySubType dari VT_UNKNOWN atau VT_DISPATCH, Tlbexp.exe mengabaikan penggunaan berikutnya dari bidang SafeArrayUserDefinedSubType. Misalnya, diberi tanda tangan berikut:

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

pustaka jenis berikut dihasilkan:

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

Perhatikan bahwa Tlbexp.exe mengabaikan bidang SafeArrayUserDefinedSubType.

Karena pustaka jenis tidak dapat menampung semua informasi yang ditemukan di rakitan, Tlbexp.exe mungkin membuang beberapa data selama proses ekspor. Untuk penjelasan tentang proses transformasi dan identifikasi sumber setiap bagian informasi yang dipancarkan ke pustaka jenis, lihat Ringkasan Konversi Perakitan ke Pustaka Jenis.

Perhatikan bahwa Eksportir Pustaka Jenis mengekspor metode yang memiliki parameter TypedReference sebagai VARIANT, meskipun objek TypedReference tidak memiliki arti dalam kode yang tidak dikelola. Saat Anda mengekspor metode yang memiliki parameter TypedReference, Pengekspor Pustaka Jenis tidak akan menghasilkan peringatan atau kesalahan dan kode tidak terkelola yang menggunakan pustaka jenis yang dihasilkan tidak akan berjalan dengan benar.

Contoh

Perintah berikut menghasilkan pustaka jenis dengan nama yang sama dengan rakitan yang ditemukan di myTest.dll.

tlbexp myTest.dll  

Perintah berikut menghasilkan pustaka jenis dengan nama clipper.tlb.

tlbexp myTest.dll /out:clipper.tlb  

Contoh berikut mengilustrasikan penggunaan Tlbexp.exe untuk mengekspor pustaka jenis dari rakitan yang mereferensikan rakitan yang diimpor menggunakan Tlbimp.exe.

Pertama gunakan Tlbimp.exe untuk mengimpor pustaka jenis myLib.tlb dan menyimpannya sebagai myLib.dll.

tlbimp myLib.tlb /out:myLib.dll  

Perintah berikut menggunakan pengompilasi C# untuk mengompilasi Sample.dll, yang merujuk myLib.dll yang dibuat pada contoh sebelumnya.

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

Perintah berikut menghasilkan pustaka jenis untuk Sample.dll yang mereferensikan myLib.dll.

tlbexp Sample.dll  

Lihat juga