Tlbimp.exe (Pengimpor Pustaka Jenis)
Pengimpor Pustaka Jenis mengonversi definisi jenis yang ditemukan dalam pustaka jenis COM menjadi definisi yang setara dalam rakitan runtime bahasa umum. Output Tlbimp.exe adalah file biner (rakitan) yang berisi metadata runtime untuk jenis yang ditentukan dalam pustaka jenis asli. Anda dapat memeriksa file ini dengan alat seperti Ildasm.exe.
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
tlbimp tlbFile [options]
Parameter
Argumen | Deskripsi |
---|---|
tlbFile | Nama file apa pun yang berisi pustaka jenis COM. |
Opsi | Deskripsi |
---|---|
/asmversion: versionnumber | Menentukan nomor versi rakitan yang akan diproduksi. Terntukan versionnumber di format major.minor.build.revision. |
/firma: companyinformation |
Menambahkan informasi perusahaan ke rakitan output. |
/hak cipta: copyrightinformation |
Menambahkan informasi hak cipta ke rakitan output. Informasi ini dapat dilihat di kotak dialog Properti File untuk perakitan. |
/delaysign | Menentukan ke Tlbimp.exe untuk menandatangani rakitan yang dihasilkan dengan nama yang kuat menggunakan penandatanganan tertunda. Anda harus menentukan opsi ini dengan opsi /keycontainer:, /keyfile:, atau /publickey:. Untuk informasi selengkapnya tentang proses penandatanganan yang tertunda, baca Menunda Penandatanganan Rakitan. |
/help | Menampilkan sintaks perintah dan opsi untuk alat ini. |
/keycontainer: containername | Menandatangani rakitan yang dihasilkan dengan nama yang kuat menggunakan pasangan kunci publik/pribadi yang ditemukan di penampung kunci yang ditentukan oleh containername. |
/keyfile: nama file | Menandatangani rakitan yang dihasilkan dengan nama yang kuat menggunakan pasangan kunci publik/pribadi resmi penerbit yang ditemukan di filename. |
/mesin: machinetype |
Membuat rakitan yang menargetkan jenis mesin yang ditentukan (mikroprosesor). Jenis mesin yang didukung: x86, x64, Itanium, dan Agnostic. |
/namespace: namespace | Menentukan namespace tempat untuk menghasilkan perakitan. |
/noclassmembers | Mencegah Tlbimp.exe menambahkan anggota ke kelas. Cara ini menghindari potensi TypeLoadException. |
/nologo | Menekan tampilan banner startup Microsoft. |
/out: nama file | Menentukan nama file output, rakitan, dan namespace untuk menulis definisi metadata. Opsi /out tidak berpengaruh pada namespace rakitan jika pustaka jenis menentukan atribut khusus Bahasa Definisi Antarmuka (IDL) yang secara eksplisit mengontrol namespace rakitan. Jika Anda tidak menentukan opsi ini, Tlbimp.exe menulis metadata ke file dengan nama yang sama seperti pustaka jenis aktual yang ditentukan dalam file input dan memberinya ekstensi .dll. Jika file output memiliki nama yang sama dengan file input, alat akan menghasilkan kesalahan untuk mencegah penimpaan pustaka jenis. |
/primary | Menghasilkan rakitan interop utama untuk pustaka jenis yang ditentukan. Informasi ditambahkan ke rakitan yang menunjukkan bahwa penerbit pustaka jenis menghasilkan rakitan. Dengan menentukan rakitan interop utama, Anda membedakan rakitan penerbit dari rakitan lain yang dibuat dari pustaka jenis menggunakan Tlbimp.exe. Anda hanya boleh menggunakan opsi /primary jika Anda adalah penerbit pustaka jenis yang Anda impor dengan Tlbimp.exe. Perhatikan bahwa Anda harus menandatangani rakitan interop utama dengan nama kuat. Untuk informasi selengkapnya, lihat Perakitan Interop Utama. |
/hasil: productinformation |
Menambahkan informasi produk ke rakitan output. Informasi ini dapat dilihat di kotak dialog Properti File untuk perakitan. |
/productversion: productversioninformation |
Menambahkan informasi versi produk ke rakitan output. Tidak ada batasan format. Informasi ini dapat dilihat di kotak dialog Properti File untuk perakitan. |
/publickey: nama file | Menentukan file yang berisi kunci publik yang akan digunakan untuk menandatangani hasil perakitan. Jika Anda menentukan opsi /keyfile: atau /keycontainer: bukan /publickey:, Tlbimp.exe menghasilkan kunci publik dari pasangan kunci publik/pribadi yang disertakan dengan /keyfile: atau /keycontainer:. Opsi /publickey: mendukung kunci uji dan skenario penundaan penandatanganan. File dalam format yang dihasilkan oleh Sn.exe. Untuk informasi selengkapnya, baca opsi -p dari Sn.exe di Alat Nama Kuat (Sn.exe). |
/reference: nama file | Menentukan file rakitan yang akan digunakan untuk menyelesaikan referensi ke jenis yang ditentukan di luar pustaka jenis saat ini. Jika Anda tidak menentukan opsi /reference, Tlbimp.exe secara otomatis mengimpor pustaka jenis eksternal apa pun yang pustaka jenisnya sedang diimpor referensi. Jika Anda menentukan opsi /reference, alat akan mencoba menyelesaikan jenis eksternal di rakitan yang direferensikan sebelum mengimpor pustaka jenis lain. |
/Keheningan: 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. |
/strictref | Tidak mengimpor pustaka jenis jika alat tidak dapat menyelesaikan semua referensi dalam rakitan saat ini, rakitan yang ditentukan dengan opsi /referensi, atau rakitan interop primer terdaftar (PIA). |
/strictref:nopia | Sama seperti /strictref, tetapi mengabaikan PIA. |
/sysarray | Menentukan alat untuk mengimpor SafeArray gaya COM sebagai jenis Array terkelola. |
/tlbreference: nama file | Menentukan file pustaka jenis yang akan digunakan untuk menyelesaikan referensi pustaka jenis tanpa berkonsultasi dengan registri. Perhatikan bahwa opsi ini tidak akan memuat beberapa format pustaka jenis lama. Namun, Anda masih dapat memuat format pustaka jenis lama secara implisit melalui registri atau direktori saat ini. |
/Merek dagang: trademarkinformation |
Menambahkan informasi merek dagang ke rakitan output. Informasi ini dapat dilihat di kotak dialog Properti File untuk perakitan. |
/transform: transformname | Mengubah metadata seperti yang ditentukan oleh parameter transformname. Tentukan dispret untuk parameter transformname untuk mengubah parameter metode [out, retval] pada antarmuka khusus-pengiriman (dispinterfaces) menjadi nilai yang ditampilkan. Untuk informasi selengkapnya tentang opsi ini, baca contoh pada bagian nanti di topik ini. |
/unsafe | Menghasilkan antarmuka tanpa pemeriksaan keamanan .NET Framework. Memanggil metode yang diekspos dengan cara ini dapat menimbulkan risiko keamanan. Anda tidak boleh menggunakan opsi ini kecuali Anda mengetahui risiko pengungkapan kode tersebut. |
/verbose | Menentukan mode verbose; menampilkan informasi tambahan tentang pustaka jenis yang diimpor. |
/VariantBoolFieldToBool | Mengonversi bidang VARIANT_BOOL dalam struktur menjadi Boolean. |
/? | Menampilkan sintaks perintah dan opsi untuk alat ini. |
Catatan
Opsi baris perintah untuk Tlbimp.exe tidak peka huruf besar-kecil dan dapat diberikan dalam urutan apa pun. Anda hanya perlu menentukan opsi yang cukup untuk mengidentifikasinya secara unik. Oleh karena itu, /n setara dengan /nologo dan /ou: outfile.dll setara dengan /out: outfile.dll.
Keterangan
Tlbimp.exe melakukan konversi pada seluruh pustaka jenis pada satu waktu. Anda tidak dapat menggunakan alat untuk menghasilkan informasi jenis untuk subset dari jenis yang ditentukan dalam pustaka jenis tunggal.
Seringkali berguna atau perlu untuk dapat menetapkan nama kuat ke rakitan. Oleh karena itu, Tlbimp.exe menyertakan opsi untuk memasok informasi yang diperlukan untuk menghasilkan rakitan bernama kuat. Opsi /keyfile: dan /keycontainer: keduanya menandatangani rakitan dengan nama yang kuat. Oleh karena itu, menyediakan hanya satu dari opsi ini pada satu waktu adalah tindakan logis.
Anda dapat menentukan beberapa rakitan referensi dengan menggunakan opsi /reference beberapa kali.
Karena cara Tlbimp.exe menghasilkan rakitan, upaya untuk menargetkan ulang rakitan ke versi mscorlib
yang berbeda tidak dimungkinkan. Misalnya, jika Anda ingin membuat rakitan yang menargetkan .NET Framework 2.0, Tlbimp.exe yang dikirimkan dengan .NET Framework 2.0/3.0/3.5 SDK harus digunakan. Untuk menargetkan .NET Framework 4.x, Tlbimp.exe yang dikirimkan dengan .NET Framework 4.x SDK harus digunakan.
ID sumber daya secara opsional dapat ditambahkan ke file pustaka jenis saat mengimpor pustaka jenis dari modul yang berisi beberapa pustaka jenis. Tlbimp.exe dapat menemukan file ini hanya ketika berada di direktori saat ini atau jika Anda menentukan jalur lengkapnya. Lihat contoh pada bagian nanti di topik ini.
Contoh
Perintah berikut menghasilkan rakitan dengan nama yang sama dengan pustaka jenis yang ditemukan di myTest.tlb
dan dengan ekstensi .dll.
tlbimp myTest.tlb
Perintah berikut menghasilkan rakitan dengan nama myTest.dll
.
tlbimp myTest.tlb /out:myTest.dll
Perintah berikut menghasilkan rakitan dengan nama yang sama seperti pustaka jenis yang ditentukan oleh MyModule.dll\1
dan dengan ekstensi .dll. MyModule.dll\1
harus berada di direktori saat ini.
tlbimp MyModule.dll\1
Perintah berikut menghasilkan rakitan dengan nama myTestLib.dll
untuk TestLib.dll
pustaka jenis. Opsi /transform:dispret mengubah parameter metode [out, retval] apa pun pada dispinterfaces di pustaka jenis menjadi nilai pengembalian di pustaka terkelola.
tlbimp TestLib.dll /transform:dispret /out:myTestLib.dll
Pustaka jenis TestLib.dll
, dalam contoh sebelumnya, menyertakan metode dispinterface bernama SomeMethod
yang mengembalikan void dan memiliki parameter [out, retval]. Kode berikut adalah tanda tangan metode pustaka jenis input untuk SomeMethod
di TestLib.dll
.
void SomeMethod([out, retval] VARIANT_BOOL*);
Menentukan opsi /transform:dispret menyebabkan Tlbimp.exe mengubah parameter [out, retval]
dari SomeMethod
menjadi nilai pengembalian bool
. Berikut ini adalah tanda tangan metode yang dihasilkan Tlbimp.exe untuk SomeMethod
di pustaka terkelola myTestLib.dll
saat opsi /transform:dispret ditentukan.
bool SomeMethod();
Jika Anda menggunakan Tlbimp.exe untuk menghasilkan pustaka terkelola untuk TestLib.dll
tanpa menentukan /transform:dispret, alat akan menghasilkan tanda tangan metode berikut untuk SomeMethod
di pustaka terkelola myTestLib.dll
.
void SomeMethod(out bool x);