Как сборка перенаправить log4net на более новую версию

Я только что обновил log4net в своем проекте, и у меня возникли некоторые проблемы с привязкой сборки, потому что компонент использует более старую версию log4net.

Версия, ожидаемая компонентом:

log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821

У меня есть версия

log4net, Version=1.2.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a

Как заставить эту привязку разрешаться правильно (есть только одно отличие API, и оно не должно иметь значения для этого компонента).

Я попытался добавить следующее в мой web.config, но это не работает.

  <dependentAssembly>
    <assemblyIdentity name="log4net" publicKeyToken="1b44e1d426115821" culture="neutral" />
    <bindingRedirect oldVersion="1.2.10.0" newVersion="1.2.12.0" />
  </dependentAssembly>

1 ответ

Решение

Я не верю, что можно выполнить перенаправление привязки к сборке с другим открытым ключом.

  1. Вам нужно будет скачать версию log4net v1.2.12.0, которая подписана старым ключом ( http://psg.mtu.edu/pub/apache//logging/log4net/binaries/log4net-1.2.12-bin-oldkey.zip)

  2. Затем обновите свой код, заменив ссылки на:

    log4net, Version=1.2.12.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a

    с

    log4net, Version=1.2.12.0, Culture=neutral, PublicKeyToken=1b44e1d426115821

На заметку: вы можете поместить диапазон версий в редирект oldVersion="0.0.0.0-1.2.11.0", для дополнительной гибкости.

Другие вопросы по тегам