Bagikan melalui


Assembly dengan nama kuat

Penamaan kuat pada rakitan menciptakan identitas unik untuk rakitan tersebut, dan dapat mencegah konflik rakitan.

Apa yang membuat rakitan bernama kuat?

Rakitan bernama kuat dihasilkan dengan menggunakan kunci privat yang sesuai dengan kunci publik yang didistribusikan bersama rakitan, dan rakitan itu sendiri. Rakitan mencakup manifes rakitan, yang berisi semua nama dan hash file yang menyusun rakitan tersebut. Perakitan yang memiliki nama kuat yang sama harus identik.

Anda dapat membuat rakitan nama yang kuat dengan menggunakan Visual Studio atau alat baris perintah. Untuk informasi selengkapnya, lihat Cara: Menandatangani rakitan dengan nama yang kuat atau Sn.exe (alat Nama Kuat).

Ketika rakitan bernama kuat dibuat, rakitan ini berisi nama teks sederhana dari assembly, nomor versi, informasi budaya opsional, tanda tangan digital, dan kunci publik yang sesuai dengan kunci privat yang digunakan untuk penandatanganan.

Peringatan

Jangan mengandalkan nama yang kuat untuk keamanan. Mereka hanya menyediakan identitas unik.

Mengapa menetapkan strong-name pada assembly Anda?

Untuk .NET Framework, rakitan dengan nama kuat berguna dalam skenario berikut:

  • Anda ingin mengaktifkan rakitan Anda untuk dirujuk oleh rakitan bernama kuat, atau Anda ingin memberikan friend akses ke rakitan Anda dari rakitan bernama kuat lainnya.

  • Aplikasi memerlukan akses ke versi yang berbeda dari rakitan yang sama. Ini berarti Anda memerlukan versi rakitan yang berbeda untuk memuat berdampingan di domain aplikasi yang sama tanpa konflik. Misalnya, jika ekstensi API yang berbeda ada dalam rakitan yang memiliki nama sederhana yang sama, penamaan yang kuat memberikan identitas unik untuk setiap versi rakitan.

  • Anda tidak ingin mempengaruhi kinerja aplikasi secara negatif yang menggunakan assembly Anda, jadi Anda ingin assembly tersebut menjadi netral domain. Ini membutuhkan penamaan yang kuat karena rakitan netral domain harus diinstal di cache perakitan global.

  • Anda ingin melakukan sentralisasi layanan untuk aplikasi Anda dengan menerapkan kebijakan penerbit, yang berarti assembly harus diinstal di cache perakitan global.

Untuk .NET Core dan .NET 5+, rakitan dengan nama kuat tidak memberikan manfaat material. Runtime tidak pernah memvalidasi tanda tangan nama kuat, juga tidak menggunakan nama kuat untuk pengikatan rakitan.

Jika Anda adalah pengembang open-source dan Anda menginginkan manfaat identitas dari assembly bernama kuat untuk kompatibilitas yang lebih baik dengan .NET Framework, pertimbangkan untuk mengunggah kunci privat yang terkait dengan assembly tersebut ke sistem kontrol sumber Anda.

Lihat juga