File Konfigurasi Penerbit

File konfigurasi penerbit adalah file XML yang secara global mengalihkan aplikasi dan rakitan dari menggunakan satu versi perakitan berdampingan ke versi lain dari rakitan yang sama. Biasanya, penerbit assembly mengeluarkan pembaruan yang kompatibel atau perbaikan keamanan berdasarkan perakitan dengan mengeluarkan file konfigurasi penerbit yang akan diinstal bersama dengan pembaruan paket layanan. Ini disebut sebagai konfigurasi penerbit. Untuk informasi selengkapnya tentang jenis konfigurasi ini, lihat Konfigurasi Penerbit.

File konfigurasi penerbit memiliki elemen dan atribut berikut. Untuk daftar lengkap skema XML, lihat Skema File Konfigurasi Penerbit.

Elemen Atribut Diperlukan
Majelis Ya
manifestVersion Ya
assemblyIdentity Ya
jenis Ya
nama Ya
bahasa Tidak
processorArchitecture Tidak
versi Ya
Publickeytoken Tidak
Ketergantungan Tidak
dependentAssembly Tidak
bindingRedirect Ya
oldVersion Ya
newVersion Ya

Lokasi File

File konfigurasi penerbit harus diinstal di folder WinSxS. File ini biasanya diinstal sebagai file terpisah tetapi file konfigurasi penerbit juga dapat disertakan sebagai sumber daya dalam DLL. File konfigurasi penerbit tidak dapat disertakan sebagai sumber daya dalam file EXE. File EXE dapat menyertakan manifes aplikasi sebagai sumber daya.

Sintaks Nama File

Nama file file konfigurasi penerbit memiliki kebijakan formulir. jurusan utama. anak di bawah umur. assemblyname di mana mayor dan minor mengacu pada bagian utama dan minor dari versi assembly yang sedang terpengaruh. Assemblyname mengacu pada nama assembly.

Misalnya, file konfigurasi penerbit untuk versi 6.0 dari rakitan Microsoft.Windows.Common-Controls akan memiliki nama berikut:

policy.6.0.Microsoft.Windows.Common-Controls

Jangan gunakan file konfigurasi kebijakan untuk menaikkan versi utama atau minor dari assembly. Misalnya, jangan alihkan versi 6.0.0.0 ke 7.0.0.0 atau 6.1.0.0. Saat aplikasi mereferensikan versi rakitan, seperti 6.0.0.0, pemeriksaan berdampingan untuk keberadaan file konfigurasi kebijakan apa pun dengan versi utama dan minor yang ditentukan, misalnya 6.0. Aplikasi kemudian dialihkan ke versi rakitan lain, misalnya 6.0.1.0. Jika file konfigurasi penerbit meningkatkan versi utama atau minor dari rakitan, pengalihan perakitan berikutnya mungkin memerlukan penerbitan beberapa file konfigurasi kebijakan.

Elemen

Majelis

Elemen kontainer. Subelemen pertamanya harus merupakan assemblyIdentity. Wajib diisi.

Elemen assembly harus berada di namespace urn:schemas-microsoft-com:asm.v1. Elemen anak dari assembly juga harus berada di namespace layanan ini, dengan warisan atau dengan pemberian tag.

Elemen assembly memiliki atribut berikut.

Atribut Deskripsi
manifestVersion Atribut manifestVersion harus diatur ke 1.0.

assemblyIdentity

Menjelaskan dan secara unik mengidentifikasi perakitan berdampingan.

Sebagai subelemen pertama dari elemen assembly , assemblyIdentity menjelaskan perakitan berdampingan yang mengubah satu atau beberapa dependensi perakitannya. File konfigurasi penerbit mengalihkan dependensi perakitan yang diidentifikasi. Misalnya, assemblyIdentity berikut menunjukkan bahwa file konfigurasi penerbit memengaruhi dependensi rakitan x86 Microsoft.Windows.Pop 6.0.0.0.

<assemblyIdentity 
     type="win32-policy" 
     publicKeyToken="0000000000000000" 
     name="policy.6.0.Microsoft.Windows.Pop" 
     version="2.1.0.0" 
     processorArchitecture="x86"/>

Sebagai subelemen pertama dari elemen dependentAssembly , assemblyIdentity menjelaskan dependensi perakitan berdampingan. File konfigurasi penerbit mengonfigurasi ulang identitas perakitan berdampingan yang diperlukan ini. Perubahan ditentukan dalam bindingRedirect. Misalnya, assemblyIdentity berikut mengubah dependensi apa pun pada Microsoft.Windows.SampleAssembly versi 2.0.0.0 ke dependensi pada Microsoft.Windows.SampleAssembly versi 2.0.1.0.

<dependency>
      <dependentAssembly>
         <assemblyIdentity 
type="win32" 
name="Microsoft.Windows.SampleAssembly"  
processorArchitecture="x86"
publicKeyToken="0000000000000000"/>
         <bindingRedirect oldVersion="2.0.0.0" newVersion="2.0.1.0"/>
      </dependentAssembly>
</dependency>

Elemen assemblyIdentity memiliki atribut berikut. Ini tidak memiliki sub-elemen.

Atribut Deskripsi
jenis Menentukan jenis rakitan. Wajib diisi. Dalam assemblyIdentity untuk perakitan yang terpengaruh, nilai atribut jenis harus diatur ke win32-policy. Nilai win32-policy harus dalam semua huruf kecil.
Dalam assemblyIdentity untuk mengubah dependensi assembly, nilai atribut jenis harus diatur ke win32. Nilai win32 harus dalam huruf kecil semua.
nama Secara unik menamai perakitan. Wajib diisi. Dalam assemblyIdentity untuk perakitan yang terpengaruh, nama memiliki kebijakan formulir. jurusan utama. anak di bawah umur. assemblyname di mana mayor dan minor mengacu pada bagian utama dan minor dari versi assembly.
Dalam assemblyIdentity untuk dependensi perakitan yang berubah, nama memiliki formulir Organization.Division.Name. Misalnya, Microsoft.Windows.MysampleApp.
bahasa Mengidentifikasi bahasa assembly. Opsional. Dalam assemblyIdentity untuk assembly yang terpengaruh, jika assembly spesifik bahasa, tentukan kode bahasa DHTML. Jika assembly adalah untuk penggunaan di seluruh dunia (netral bahasa), hilangkan atribut ini.
Dalam assemblyIdentity untuk mengubah dependensi assembly, jika assembly spesifik bahasa, tentukan kode bahasa DHTML. Jika assembly adalah untuk penggunaan di seluruh dunia (bahasa netral) tetapkan nilai sebagai "*".
processorArchitecture Menentukan prosesor yang menjalankan aplikasi.
versi Menentukan versi assembly. Gunakan sintaks versi empat bagian: mmmm.nnnn.oooo.pppp Diperlukan hanya dalam rakitan konteks DEFIdentity. Jangan tentukan atribut versi dalam assemblyIdentity konteks REF.
Publickeytoken String heksadesimal 16 karakter yang mewakili 8 byte terakhir dari hash SHA-1 dari kunci publik tempat perakitan ditandatangani. Kunci umum yang digunakan untuk menandatangani katalog harus 2048 bit atau lebih besar. PublicKeyToken diperlukan untuk semua rakitan bersama berdampingan. PublicKeyToken yang digunakan untuk file konfigurasi penerbit harus menjadi kunci yang sama yang digunakan untuk rakitan yang ditandatangani. File konfigurasi penerbit dapat ditandatangani menggunakan alat yang sama seperti yang digunakan dengan rakitan, lihat Contoh Penandatanganan Rakitan dan Membuat File dan Katalog yang Ditandatangani.

Ketergantungan

Elemen kontainer opsional untuk setidaknya satu dependentAssembly. Elemen ini tidak memiliki atribut.

dependentAssembly

Setiap dependentAssembly harus berada di dalam tepat satu dependensi. DependentAssembly tidak memiliki atribut. Subelemen pertama dependentAssembly harus merupakan assemblyIdentity untuk perakitan berdampingan yang dikonfigurasi ulang oleh konfigurasi penerbit.

bindingRedirect

Elemen bindingRedirect berisi informasi pengalihan untuk pengikatan assembly.

Elemen ini memiliki atribut yang ditunjukkan dalam tabel berikut.

Atribut Deskripsi
oldVersion Menentukan versi rakitan yang ditimpa dan dialihkan. Gunakan sintaks versi empat bagian nnnnn.nnnnn.nnnnn.nnnnn. Tentukan rentang versi dengan tanda hubung tanpa spasi. Misalnya, 2.14.3.0 atau 2.14.3.0 2.16.0.0. Wajib diisi.
newVersion Menentukan versi rakitan pengganti. Gunakan sintaks versi empat bagian nnnnn.nnnnn.nnnnn.nnnnn.

Keterangan

File konfigurasi penerbit tidak menentukan file. Perhatikan bahwa file kebijakan khusus bahasa terpisah dari file konfigurasi penerbit.

Contoh

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32-policy" publicKeyToken="0000000000000000" name="policy.6.0.Proseware.Research.SampleAssembly" version="1.0.1.0" language="en-us" processorArchitecture="x86"/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" publicKeyToken="0000000000000000" name="Proseware.Research.SampleAssembly" language="en-us" processorArchitecture="x86"/>
<bindingRedirect oldVersion="1.0.0.0" newVersion="1.0.1.0"/>
</dependentAssembly>
</dependency>
</assembly>