Bagikan melalui


Assembly bernama kuat

Penamaan yang kuat assembly menciptakan identitas unik untuk assembly, dan dapat mencegah konflik assembly.

Apa yang membuat assembly bernama kuat?

Assembly bernama kuat dihasilkan dengan menggunakan kunci pribadi yang sesuai dengan kunci publik yang didistribusikan dengan assembly, dan assembly itu sendiri. Assembly mencakup manifes assembly, yang berisi nama dan hash dari semua file yang membentuk assembly. Assembly yang memiliki nama kuat yang sama harus identik.

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

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

Peringatan

Jangan mengandalkan nama yang kuat untuk keamanan. Nama yang kuat hanya memberikan identitas unik.

Mengapa kuat-nama assembly Anda?

Untuk .NET Framework, assembly bernama kuat berguna dalam skenario berikut:

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

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

  • Anda tidak ingin berdampak negatif terhadap kinerja aplikasi menggunakan assembly Anda, jadi Anda ingin assembly menjadi domain netral. Ini membutuhkan penamaan yang kuat karena assembly domain-netral harus diinstal di cache assembly global.

  • Anda ingin memusatkan layanan untuk aplikasi Anda dengan menerapkan kebijakan penayang, yang berarti assembly harus diinstal di cache assembly global.

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

Jika Anda adalah pengembang sumber terbuka dan Anda menginginkan manfaat identitas dari assembly bernama kuat untuk kompatibilitas yang lebih baik dengan .NET Framework, pertimbangkan untuk memeriksa kunci pribadi yang terkait dengan assembly ke sistem kontrol sumber Anda.

Lihat juga