Cara: Membuat pasangan kunci umum-privat

Untuk menandatangani assembly dengan nama yang kuat, Anda harus memiliki pasangan kunci umum/privat. Pasangan kunci kriptografi umum dan privat ini digunakan selama kompilasi untuk membuat assembly dengan nama yang kuat. Anda dapat membuat pasangan kunci menggunakan alat Nama Kuat (Sn.exe). File pasangan kunci biasanya memiliki ekstensi .snk .

Catatan

Di Visual Studio, halaman properti proyek C# dan Visual Basic menyertakan tab Penandatanganan yang memungkinkan Anda memilih file kunci yang ada atau membuat file kunci baru tanpa menggunakan Sn.exe. Di Visual C++, Anda dapat menentukan lokasi file kunci yang ada di halaman properti Tingkat Lanjut di bagian Linker di bagian Properti Konfigurasi dari jendela Halaman Properti . Penggunaan AssemblyKeyFileAttribute atribut untuk mengidentifikasi pasangan file kunci dibuat usang dimulai dengan Visual Studio 2005.

Buat file kunci

Untuk membuat pasangan kunci, pada prompt perintah, ketik perintah berikut:

sn –k<file name>

Dalam perintah ini, nama file adalah nama file output yang berisi pasangan kunci.

Contoh berikut membuat pasangan kunci yang disebut sgKey.snk.

sn -k sgKey.snk

Jika Anda berniat untuk menunda menandatangani peassembly dan Anda mengontrol seluruh pasangan kunci (yang tidak mungkin berada di luar skenario pengujian), Anda dapat menggunakan perintah berikut untuk menghasilkan pasangan kunci lalu mengekstrak kunci umum darinya ke dalam file terpisah. Pertama, buat pasangan kunci:

sn -k keypair.snk

Selanjutnya, ekstrak kunci umum dari pasangan kunci dan salin ke file terpisah:

sn -p keypair.snk public.snk

Setelah membuat pasangan kunci, Anda harus meletakkan file tempat alat penandaan nama yang kuat dapat menemukannya.

Saat menandatangani assembly dengan nama yang kuat, Assembly Linker (Al.exe) mencari file kunci relatif terhadap direktori saat ini dan ke direktori output. Saat menggunakan pengompilasi baris perintah, Anda cukup menyalin kunci ke direktori saat ini yang berisi modul kode Anda.

Jika Anda menggunakan versi Visual Studio yang lebih lama yang tidak memiliki tab Penandatanganan di properti proyek, lokasi file kunci yang direkomendasikan adalah direktori proyek dengan atribut file yang ditentukan sebagai berikut:

[assembly:AssemblyKeyFileAttribute("keyfile.snk")];
[assembly:AssemblyKeyFileAttribute("keyfile.snk")]
<Assembly:AssemblyKeyFileAttribute("keyfile.snk")>

Lihat juga