File Konfigurasi Aplikasi

File konfigurasi aplikasi adalah file XML yang digunakan untuk mengontrol pengikatan perakitan. Ini dapat mengalihkan aplikasi dari menggunakan satu versi perakitan berdampingan ke versi lain dari rakitan yang sama. Ini disebut konfigurasi per aplikasi. File konfigurasi aplikasi hanya berlaku untuk manifes aplikasi tertentu dan rakitan dependen. Komponen terisolasi yang dikompilasi dengan manifes ISOLATIONAWARE_MANIFEST_RESOURCE_ID yang disematkan memerlukan file konfigurasi aplikasi terpisah. Manifes yang dikelola dengan CreateActCtx memerlukan file konfigurasi aplikasi terpisah.

Pengalihan yang ditentukan oleh file konfigurasi aplikasi dapat menggantikan versi rakitan yang ditentukan oleh manifes aplikasi dan file konfigurasi penerbit. Misalnya, jika file konfigurasi penerbit menentukan bahwa semua referensi ke rakitan dialihkan dari versi 1.0.0.0 ke 1.1.0.0, file konfigurasi aplikasi dapat digunakan untuk mengalihkan aplikasi tertentu untuk menggunakan versi 1.0.0.0. File konfigurasi aplikasi hanya berlaku untuk manifes aplikasi yang ditentukan dan rakitan dependen.

Untuk daftar lengkap skema XML, lihat Skema File Konfigurasi Aplikasi.

File konfigurasi aplikasi memiliki elemen dan atribut yang ditunjukkan dalam tabel berikut.

Elemen Atribut Diperlukan
konfigurasi Ya
Windows Ya
publisherPolicy Ya
Menerapkan Ya
Runtime Tidak
assemblyBinding Ya
Menyelidik Tidak
privatePath Ya
Ketergantungan Tidak
dependentAssembly Ya
assemblyIdentity Ya
jenis Ya
nama Ya
bahasa Tidak
processorArchitecture Ya
versi Ya
Publickeytoken Tidak
bindingRedirect Ya
oldVersion Ya
newVersion Ya

Lokasi File

File konfigurasi aplikasi harus diinstal di lokasi yang sama dengan manifes aplikasi aplikasi.

Sintaks Nama File

Nama file konfigurasi aplikasi adalah nama aplikasi yang dapat dieksekusi diikuti oleh .config.

Misalnya, file konfigurasi aplikasi yang mengacu pada Example.exe atau Example.dll akan menggunakan sintaks nama file yang ditunjukkan dalam contoh berikut. Anda dapat menghilangkan bidang untuk < ID >sumber daya jika menginstal file konfigurasi sebagai file terpisah atau jika ID sumber daya adalah 1.

example.exe.<ID> sumber daya.config

example.dll.<ID> sumber daya.config

Elemen

Nama elemen dan atribut peka huruf besar/kecil. Nilai elemen dan atribut semuanya tidak peka huruf besar/kecil, kecuali untuk nilai atribut jenis.

konfigurasi

Elemen kontainer untuk elemen windows dan runtime file konfigurasi aplikasi. Wajib diisi.

windows

Termasuk bagian dari file konfigurasi aplikasi yang berlaku untuk pengalihan rakitan Win32.

Catatan

Penulis aplikasi tidak boleh menyertakan file konfigurasi dengan subelemen windows sebagai bagian dari aplikasi mereka. Ini dapat diizinkan jika satu-satunya tujuan file konfigurasi adalah untuk mengaktifkan fungsionalitas privatePath dari elemen pemeriksaan . Elemen pemeriksaan tidak tersedia pada sistem yang lebih lama dari Windows Server 2008 R2 dan Windows 7.

publisherPolicy

Menentukan apakah akan menerapkan kebijakan penerbit.

Elemen ini memiliki atribut yang ditunjukkan dalam tabel berikut.

Atribut Deskripsi
Menerapkan Nilai "ya" menerapkan kebijakan penerbit. Ini adalah pengaturan default. Nilai "tidak" tidak menerapkan kebijakan penerbit.

runtime bahasa umum

Termasuk bagian dari file konfigurasi aplikasi yang berlaku untuk pengalihan rakitan .Net.

assemblyBinding

Termasuk informasi pengalihan untuk aplikasi dan rakitan yang terpengaruh oleh file konfigurasi aplikasi ini. Subelemen pertama dari assemblyBinding harus merupakan assemblyIdentity yang mengidentifikasi aplikasi.

Dimulai dengan Windows Server 2008 R2 dan Windows 7, elemen assemblyBinding dapat menyertakan subelemen pemeriksaan .

Menyelidik

Subelemen opsional dari elemen assemblyBinding yang memperluas pencarian rakitan ke direktori tambahan. Direktori tambahan tidak diperlukan untuk menjadi subdirektori direktori assembly.

Catatan

Elemen ini tidak tersedia pada sistem yang lebih lama dari Windows Server 2008 R2 dan Windows 7 dan hanya dapat digunakan dalam elemen windows .

Elemen ini memiliki atribut yang ditunjukkan dalam tabel berikut.

Atribut Deskripsi
privatePath Menentukan jalur relatif subdirektori direktori dasar aplikasi yang mungkin berisi rakitan. Maksimal sembilan jalur subdirektori dapat ditentukan. Batasi setiap jalur subdirektori dengan titik koma.

Anda dapat menggunakan penentu khusus titik ganda di jalur untuk menunjukkan direktori induk direktori saat ini. Tidak lebih dari dua tingkat di atas direktori saat ini dapat ditentukan menggunakan titik ganda. Jangan gunakan tiga titik. Misalnya, aplikasi yang menggunakan elemen pemeriksaan berikut memeriksa direktori tambahan untuk perakitan.

<probing privatePath="bin;..\bin2\subbin;bin3"/>

dependensi

Elemen kontainer untuk setidaknya satu dependentAssembly. Setiap dependentAssembly dapat berada di dalam tepat satu dependensi. Elemen ini tidak memiliki atribut. Pilihan.

dependentAssembly

Subelemen pertama harus berupa elemen assemblyIdentity yang mengidentifikasi rakitan berdampingan yang dialihkan oleh file konfigurasi aplikasi. DependentAssembly tidak memiliki atribut.

assemblyIdentity

Sebagai subelemen pertama dari elemen assemblyBinding , assemblyIdentity menjelaskan dan mengidentifikasi aplikasi secara unik. File konfigurasi aplikasi mengalihkan pengikatan aplikasi ini ke rakitan berdampingan. Misalnya, assemblyIdentity berikut menunjukkan bahwa file konfigurasi aplikasi memengaruhi pengikatan aplikasi mysampleApp ke rakitan berdampingan. Rakitan yang dialihkan akan diidentifikasi dalam dependentAssembly.

<assemblyIdentity processorArchitecture="X86" name="Microsoft.Windows.mysampleApp" type="win32" version="1.0.0.0"/>

Sebagai subelemen pertama dari elemen dependentAssembly , assemblyIdentity menjelaskan perakitan berdampingan tempat aplikasi bergantung. File konfigurasi aplikasi mengonfigurasi ulang identitas rakitan yang diperlukan ini. Misalnya, assemblyIdentity dan bindingRedirect berikut mengonfigurasi ulang dependensi pada Microsoft.Windows.SampleAssembly dari versi 2.0.0.0 ke versi 2.1.0.0.

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

Perhatikan bahwa setiap assemblyIdentity yang disertakan dalam dependentAssembly harus sama persis dengan assemblyIdentity dalam manifes assembly sendiri.

Elemen assemblyIdentity memiliki atribut berikut. Ini tidak memiliki subelemen.

Atribut Deskripsi
jenis Nilainya harus win32 (huruf kecil). Wajib diisi.
nama Atribut name mengidentifikasi aplikasi yang terpengaruh oleh file konfigurasi aplikasi atau assembly yang dialihkan. Gunakan format berikut untuk nama: Organization.Division.Name. Wajib diisi. Misalnya: Microsoft.Windows.MysampleApp atau Microsoft.Windows.MysampleAsm.
bahasa Mengidentifikasi bahasa. Opsional. Untuk assemblyIdentity yang mengacu pada assembly, jika assembly khusus 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 aplikasi atau assembly. Gunakan sintaks versi empat bagian: mmmm.nnnn.oooo.pppp. Wajib diisi.
Publickeytoken Untuk assemblyIdentity yang mengacu pada assembly, string heksadesimal 16 karakter yang mewakili 8 byte terakhir hash SHA-1 dari kunci publik tempat assembly ditandatangani. Kunci umum yang digunakan untuk menandatangani katalog harus 2048 bit atau lebih besar. Diperlukan untuk semua rakitan bersama berdampingan.

bindingRedirect

Elemen bindingRedirect berisi informasi pengalihan untuk pengikatan assembly. Setiap bindingRedirect harus disertakan dalam satu dependentAssembly. Sintaks versi empat bagian dari versi baru dan versi lama harus menentukan versi utama dan minor yang sama.

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 aplikasi tidak menentukan file.

Contoh

<bindingRedirect oldVersion="1.0.0.0" newVersion="1.0.10.0"/>
<bindingRedirect oldVersion="1.0.50.2011-1.0.60.65535" newVersion="1.0.70.0"/>