Cara untuk: Menandatangani assembly dengan nama yang kuat
Catatan
Meskipun .NET Core mendukung assembly bernama kuat, dan semua assembly di pustaka .NET Core ditandatangani, sebagian besar assembly pihak ketiga tidak memerlukan nama yang kuat. Untuk informasi selengkapnya, lihat Penandatanganan nama yang kuat GitHub.
Ada sejumlah cara untuk menandatangani assembly dengan nama yang kuat:
- Dengan menggunakan halaman Penamaan Build>Strong di perancang proyek untuk proyek di Visual Studio. Ini adalah cara termudah dan paling nyaman untuk menandatangani assembly dengan nama yang kuat.
- Dengan menggunakan Assembly Linker (Al.exe) untuk menautkan modul kode .NET Framework (file .netmodule) dengan file kunci.
- Dengan menggunakan atribut assembly untuk menyisipkan informasi nama yang kuat ke dalam kode Anda. Anda dapat menggunakan atribut AssemblyKeyFileAttribute atau AssemblyKeyNameAttribute, tergantung di mana file kunci yang akan digunakan berada.
- Dengan menggunakan opsi pengkompilasi.
Anda harus memiliki pasangan kunci kriptografi untuk menandatangani assembly dengan nama yang kuat. Untuk informasi selengkapnya tentang membuat pasangan kunci, lihat Cara: Membuat pasangan kunci publik-privat.
Membuat dan menandatangani assembly dengan nama yang kuat dengan menggunakan Visual Studio
- Di Penjelajah Solusi, buka menu pintasan untuk proyek, lalu pilih Properti.
- Di bagian tab Build, Anda akan menemukan node penamaan yang kuat.
- Pilih kotak centang Tanda tangani assembly, yang memperluas opsi.
- Pilih tombol Telusuri untuk memilih jalur file kunci nama yang kuat.
Catatan
Untuk menunda menandatangani assembly, pilih file kunci publik.
Membuat dan menandatangani assembly dengan nama yang kuat dengan menggunakan Visual Studio
Buka Visual Studio Developer Command Prompt atau Visual Studio Developer PowerShell dan masukkan perintah berikut:
al /out:<assemblyName<>moduleName> /keyfile:<keyfileName >
Mana:
- assemblyName adalah nama assembly yang ditandatangani dengan kuat (file .dll atau .exe ) yang akan dipancarkan Oleh Assembly Linker.
- moduleName adalah nama modul kode .NET Framework (file .netmodule) yang menyertakan satu atau beberapa jenis. Anda dapat membuat file .netmodule dengan mengkompilasi kode Anda dengan
/target:module
switch di C# atau Visual Basic. - keyfileName adalah nama kontainer atau file yang berisi pasangan kunci. Assembly Linker menafsirkan jalur relatif dalam kaitannya dengan direktori saat ini.
Contoh berikut menandatangani assembly MyAssembly.dll dengan nama yang kuat dengan menggunakan file kunci sgKey.snk.
al /out:MyAssembly.dll MyModule.netmodule /keyfile:sgKey.snk
Untuk informasi selengkapnya tentang alat ini, lihat Assembly Linker.
Menandatangani assembly dengan nama yang kuat dengan menggunakan atribut
System.Reflection.AssemblyKeyFileAttribute Menambahkan atribut atau AssemblyKeyNameAttribute ke file kode sumber Anda, dan tentukan nama file atau kontainer yang berisi pasangan kunci yang akan digunakan saat menandatangani assembly dengan nama yang kuat.
Mengompilasi file kode sumber secara normal.
Catatan
Pengkompilasi C# dan Visual Basic mengeluarkan peringatan pengkompilasi (CS1699 dan BC41008) ketika mereka menemukan atribut AssemblyKeyFileAttribute atau AssemblyKeyNameAttribute dalam kode sumber. Anda dapat mengabaikan peringatan ini.
Contoh berikut menggunakan AssemblyKeyFileAttribute atribut dengan file kunci yang disebut keyfile.snk, yang terletak di direktori tempat assembly dikompilasi.
[assembly:AssemblyKeyFileAttribute("keyfile.snk")];
[assembly:AssemblyKeyFileAttribute("keyfile.snk")]
<Assembly:AssemblyKeyFileAttribute("keyfile.snk")>
Anda juga dapat menunda menandatangani assembly saat mengkompilasi file sumber Anda. Untuk informasi selengkapnya, lihat Menunda-menandatangani assembly.
Menandatangani assembly dengan nama yang kuat dengan menggunakan atribut
Mengompilasi file atau file kode sumber Anda dengan opsi /keyfile
atau /delaysign
pengkompilasi di C# dan Visual Basic, atau opsi /KEYFILE
atau /DELAYSIGN
linker di C++. Setelah nama opsi, tambahkan titik dua dan nama file kunci. Saat menggunakan pengkompilasi baris perintah, Anda dapat menyalin file kunci ke direktori yang berisi file kode sumber Anda.
Untuk informasi tentang penandatanganan penundaan, lihat Menunda-menandatangani assembly.
Contoh berikut menggunakan pengkompilasi C# dan menandatangani perakitanUtilityLibrary.dll dengan nama yang kuat dengan menggunakan file kunci sgKey.snk.
csc /t:library UtilityLibrary.cs /keyfile:sgKey.snk
Lihat juga
- Membuat dan menggunakan rakitan dengan nama yang kuat
- Cara: Membuat pasangan kunci umum-privat
- Al.exe (Assembly Linker)
- Menunda penandatanganan assembly
- API dengan nama kuat menampilkan PlatformNotSupportedException
- Mengelola assembly dan penandatanganan manifes
- Halaman Penandatanganan, Perancang Project