如何将日志记录组件log4net指向更新版本

8
我刚刚在我的项目中升级了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个回答

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


我也找到了一种同时包含两个程序集的方法。Ugh - George Mauer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接