7

我刚刚在我的项目中升级了 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>
4

1 回答 1

9

我不相信可以使用不同的公钥对程序集执行绑定重定向。

  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",以增加灵活性。

于 2013-10-15T17:13:22.640 回答