Mengapa pengalihan yang mengikat diperlukan? Misalkan Anda memiliki aplikasi A yang mereferensikan library B, dan juga library C versi 1.1.2.5. Library B pada gilirannya juga mereferensikan library C, tetapi dari versi 1.1.1.0. Sekarang kami mengalami konflik, karena Anda tidak dapat memuat versi berbeda dari rakitan yang sama saat runtime. Untuk menyelesaikan konflik ini, Anda mungkin menggunakan pengalihan binding, biasanya ke versi baru (tetapi bisa juga ke versi lama). Anda melakukannya dengan menambahkan yang berikut ini ke file app.config dari aplikasi A, di bawah configuration > runtime > assemblyBinding
bagian (lihat di sini untuk contoh file konfigurasi lengkap):
<dependentAssembly>
<assemblyIdentity name="C"
publicKeyToken="32ab4ba45e0a69a1"
culture="en-us" />
<bindingRedirect oldVersion="1.1.1.0" newVersion="1.1.2.5" />
</dependentAssembly>
Anda juga dapat menentukan berbagai versi untuk dipetakan:
<bindingRedirect oldVersion="0.0.0.0-1.1.1.0" newVersion="1.1.2.5" />
Sekarang pustaka B, yang telah dikompilasi dengan referensi ke C versi 1.1.1.0 akan menggunakan C versi 1.1.2.5 saat runtime. Tentu saja, Anda lebih baik memastikan bahwa library C kompatibel dengan versi sebelumnya atau hal ini dapat menyebabkan hasil yang tidak diharapkan.
Anda dapat mengarahkan ulang semua versi pustaka, tidak hanya yang utama.
oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0"