Чому взагалі потрібні переадресації прив’язки? Припустимо, у вас є додаток A, що посилається на бібліотеку B, а також на бібліотеку C версії 1.1.2.5. Бібліотека B у свою чергу також посилається на бібліотеку C, але версії 1.1.1.0. Зараз у нас конфлікт, оскільки ви не можете завантажувати різні версії однієї збірки під час виконання. Для вирішення цього конфлікту ви можете використовувати переадресацію прив'язки, як правило, до нової версії (але може бути і до старої). Ви робите це, додаючи в розділ app.config програми програми A під configuration > runtime > assemblyBinding
розділом (див. Тут приклад повного файлу конфігурації):
<dependentAssembly>
<assemblyIdentity name="C"
publicKeyToken="32ab4ba45e0a69a1"
culture="en-us" />
<bindingRedirect oldVersion="1.1.1.0" newVersion="1.1.2.5" />
</dependentAssembly>
Ви також можете вказати діапазон версій для картування:
<bindingRedirect oldVersion="0.0.0.0-1.1.1.0" newVersion="1.1.2.5" />
Тепер бібліотека B, складена з посиланням на C версії 1.1.1.0, буде використовувати C версії 1.1.2.5 під час виконання. Звичайно, ви краще переконайтеся, що бібліотека C сумісна назад, або це може призвести до несподіваних результатів.
Ви можете перенаправляти будь-які версії бібліотек, а не лише основні.
oldVersion="0.0.0.0-4.1.0.0" newVersion="4.1.0.0"