Bagikan melalui


Cara: Membuat Kebijakan Penerbit

Catatan

Artikel ini khusus untuk .NET Framework. Ini tidak berlaku untuk implementasi .NET yang lebih baru, termasuk .NET 6 dan versi yang lebih baru.

Vendor rakitan dapat menyatakan bahwa aplikasi harus menggunakan versi rakitan yang lebih baru dengan menyertakan file kebijakan penerbit dengan rakitan yang ditingkatkan. File kebijakan penerbit menentukan pengalihan perakitan dan pengaturan basis kode, dan menggunakan format yang sama seperti file konfigurasi aplikasi. File kebijakan penerbit dikompilasi ke dalam rakitan dan ditempatkan di cache rakitan global.

Ada tiga langkah yang terlibat dalam membuat kebijakan penerbit:

  1. Buat file kebijakan penerbit.

  2. Buat rakitan kebijakan penerbit.

  3. Tambahkan rakitan kebijakan penerbit ke cache rakitan global.

Skema untuk kebijakan penerbit dijelaskan dalam Mengalihkan Versi Rakitan. Contoh berikut menunjukkan file kebijakan penerbit yang mengalihkan satu versi myAssembly ke versi lainnya.

<configuration>
   <runtime>
      <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
       <dependentAssembly>
         <assemblyIdentity name="myAssembly"
                           publicKeyToken="32ab4ba45e0a69a1"
                           culture="en-us" />
         <!-- Redirecting to version 2.0.0.0 of the assembly. -->
         <bindingRedirect oldVersion="1.0.0.0"
                          newVersion="2.0.0.0"/>
       </dependentAssembly>
      </assemblyBinding>
   </runtime>
</configuration>

Untuk mempelajari cara menentukan basis kode, lihat Menentukan Lokasi Rakitan.

Membuat Rakitan Kebijakan Penerbit

Gunakan Assembly Linker (Al.exe) untuk membuat rakitan kebijakan penerbit.

Untuk membuat rakitan kebijakan penerbit

Pada prompt perintah, jalankan perintah berikut ini:

al /link:publisherPolicyFile /out:publisherPolicyAssemblyFile /keyfile:keyPairFile /platform:processorArchitecture

Dalam perintah ini:

  • Argumen publisherPolicyFile adalah nama file kebijakan penerbit.

  • Argumen publisherPolicyAssemblyFile adalah nama rakitan kebijakan penerbit yang dihasilkan dari perintah ini. Nama file rakitan harus mengikuti format:

    `policy.majorNumber.minorNumber.mainAssemblyName.dll'

  • Argumen keyPairFile adalah nama file yang berisi pasangan kunci. Anda harus menandatangani rakitan dan perakitan kebijakan penerbit dengan pasangan kunci yang sama.

  • Argumen processorArchitecture mengidentifikasi platform yang ditargetkan oleh rakitan khusus prosesor.

    Catatan

    Kemampuan untuk menargetkan arsitektur prosesor tertentu tersedia mulai dari .NET Framework 2.0.

Kemampuan untuk menargetkan arsitektur prosesor tertentu tersedia mulai dari .NET Framework 2.0. Perintah berikut membuat rakitan kebijakan penerbit yang disebut policy.1.0.myAssembly dari file kebijakan penerbit yang disebut pub.config, menetapkan nama yang kuat ke perakitan menggunakan pasangan kunci dalam file sgKey.snk, dan menentukan bahwa perakitan menargetkan arsitektur prosesor x86.

al /link:pub.config /out:policy.1.0.myAssembly.dll /keyfile:sgKey.snk /platform:x86

Rakitan kebijakan penerbit harus cocok dengan arsitektur prosesor dari rakitan yang menerapkannya. Dengan demikian, jika rakitan Anda memiliki nilai ProcessorArchitecture berupa MSIL, rakitan kebijakan penerbit untuk rakitan tersebut harus dibuat dengan /platform:anycpu. Anda harus menyediakan rakitan kebijakan penerbit terpisah untuk setiap rakitan khusus prosesor.

Konsekuensi dari aturan ini adalah bahwa untuk mengubah arsitektur prosesor untuk rakitan, Anda harus mengubah komponen utama atau kecil dari nomor versi, sehingga Anda dapat menyediakan rakitan kebijakan penerbit baru dengan arsitektur prosesor yang benar. Rakitan kebijakan penerbit lama tidak dapat melayani rakitan Anda setelah rakitan Anda memiliki arsitektur prosesor yang berbeda.

Konsekuensi lain adalah bahwa linker versi 2.0 tidak dapat digunakan untuk membuat rakitan kebijakan penerbit untuk rakitan yang dikompilasi menggunakan versi .NET Framework sebelumnya, karena selalu menentukan arsitektur prosesor.

Menambahkan Rakitan Kebijakan Penerbit ke Singgahan Perakitan Global

Gunakan alat Singgahan Perakitan Global (Gacutil.exe) untuk menambahkan rakitan kebijakan penerbit ke singgahan perakitan global.

Untuk menambahkan rakitan kebijakan penerbit ke singgahan perakitan global

Pada prompt perintah, jalankan perintah berikut ini:

gacutil /i publisherPolicyAssemblyFile

Perintah berikut menambahkan policy.1.0.myAssembly.dll ke cache perakitan global.

gacutil /i policy.1.0.myAssembly.dll

Penting

Rakitan kebijakan penerbit tidak dapat ditambahkan ke singgahan perakitan global kecuali file kebijakan penerbit asli yang ditentukan dalam argumen /link terletak di direktori yang sama dengan rakitan.

Lihat juga