Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Nama rakitan disimpan dalam metadata dan memiliki dampak yang signifikan pada cakupan rakitan dan penggunaannya oleh aplikasi. Assembly dengan nama kuat memiliki nama yang sepenuhnya lengkap yang mencakup nama assembly, budaya, kunci publik, nomor versi, dan, secara opsional, arsitektur prosesor. Gunakan properti FullName untuk mendapatkan nama lengkap, sering disebut sebagai nama tampilan, untuk rakitan yang telah dimuat.
Runtime menggunakan informasi nama untuk menemukan rakitan dan membedakannya dari rakitan lain dengan nama yang sama. Misalnya, assembly dengan nama kuat yang disebut myTypes dapat memiliki nama sepenuhnya memenuhi syarat berikut:
myTypes, Version=1.0.1234.0, Culture=en-US, PublicKeyToken=b77a5c561934e089c, ProcessorArchitecture=msil
Dalam contoh ini, nama yang sepenuhnya memenuhi syarat menunjukkan bahwa myTypes rakitan memiliki nama yang kuat dengan token kunci publik, memiliki nilai budaya untuk bahasa Inggris Amerika Serikat, dan memiliki nomor versi 1.0.1234.0. Arsitektur prosesornya adalah msil, yang berarti bahwa itu akan dikompilasi just-in-time (JIT) ke kode 32-bit atau kode 64-bit tergantung pada sistem operasi dan prosesor.
Petunjuk / Saran
Informasi ProcessorArchitecture ini memungkinkan versi khusus prosesor dari komponen. Anda dapat membuat versi rakitan yang identitasnya hanya berbeda dengan arsitektur prosesor, misalnya versi khusus prosesor 32-bit dan 64-bit. Arsitektur prosesor tidak diperlukan untuk nama yang kuat. Untuk informasi selengkapnya, lihat AssemblyName.ProcessorArchitecture .
Kode yang meminta jenis dalam assembly harus menggunakan nama assembly yang lengkap dan spesifik. Ini disebut pengikatan yang sepenuhnya memenuhi syarat. Pengikatan parsial, yang hanya menentukan nama rakitan, tidak diizinkan saat mereferensikan rakitan dalam .NET Framework.
Semua referensi ke rakitan yang membentuk .NET Framework juga harus berisi nama lengkap rakitan. Misalnya, referensi ke rakitan System.Data .NET Framework untuk versi 1.0 akan mencakup:
System.data, version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
Versi ini sesuai dengan nomor versi semua assembly .NET Framework yang dirilis bersama .NET Framework versi 1.0. Untuk rakitan .NET Framework, nilai budaya selalu netral, dan kunci publik sama seperti yang ditunjukkan pada contoh di atas.
Misalnya, untuk menambahkan referensi rakitan dalam file konfigurasi guna menyiapkan pendengar pelacakan, Anda perlu menyertakan nama lengkap dari rakitan sistem .NET Framework.
<add name="myListener" type="System.Diagnostics.TextWriterTraceListener, System, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="c:\myListener.log" />
Nota
Runtime memperlakukan nama assembly sebagai tidak peka huruf besar/kecil saat menghubungkan dengan assembly, tetapi mempertahankan penulisan apa pun yang digunakan dalam nama assembly. Beberapa alat di Windows SDK menangani nama rakitan dengan membedakan huruf besar dan kecil. Untuk hasil terbaik, atur nama rakitan seolah-olah sensitif terhadap penggunaan huruf besar/kecil.
Beri nama komponen aplikasi
Runtime tidak mempertimbangkan nama file saat menentukan identitas assembly. Identitas perakitan, yang terdiri dari nama perakitan, versi, budaya, dan nama yang kuat, harus jelas bagi runtime.
Misalnya, jika Anda memiliki rakitan yang disebut myAssembly.exe yang mereferensikan rakitan yang disebut myAssembly.dll, pengikatan terjadi dengan benar jika Anda menjalankan myAssembly.exe. Namun, jika aplikasi lain menjalankan myAssembly.exe menggunakan metode AppDomain.ExecuteAssembly, runtime menentukan yang myAssembly sudah dimuat ketika myAssembly.exe meminta pengikatan ke myAssembly. Dalam hal ini, myAssembly.dll tidak pernah dimuat. Karena myAssembly.exe tidak berisi jenis yang diminta, terjadi kesalahan TypeLoadException.
Untuk menghindari masalah ini, pastikan rakitan yang membentuk aplikasi Anda tidak memiliki nama rakitan yang sama atau menempatkan rakitan dengan nama yang sama di direktori yang berbeda.
Nota
Di .NET Framework, jika Anda menempatkan rakitan dengan nama kunci di cache rakitan global, nama file rakitan harus sesuai dengan nama rakitan, tidak termasuk ekstensi nama file, seperti .exe atau .dll. Misalnya, jika nama file rakitan myAssembly.dll, nama rakitan harus myAssembly. Rakitan privat yang disebarkan hanya di direktori aplikasi akar dapat memiliki nama rakitan yang berbeda dari nama file.