首页 新闻 搜索 专区 学院

升级log4net版本时遇到的问题

0
悬赏园豆:10 [已解决问题] 解决于 2016-03-17 23:28
我最近升级log4net版本时遇到的问题:
无法解决“log4net, Version=1.2.13.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a”与“log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821”之间的冲突。正在随意选择“log4net, Version=1.2.13.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a”。
请问大神是什么原因?该怎么解决?折腾了好久。网上相关文章也没少看。
黑眼小豆豆的主页 黑眼小豆豆 | 菜鸟二级 | 园豆:201
提问于:2016-02-27 16:27
< >
分享
最佳答案
0

你的程序中还有地方在引用旧版log4net

收获园豆:10
dudu | 高人七级 |园豆:38827 | 2016-02-27 19:05

不是这个原因。

黑眼小豆豆 | 园豆:201 (菜鸟二级) | 2016-02-28 17:55

是的。程序中使用了NHibernate,这个版本的NHibernate依赖log4net 1.2.10.0版。单纯升级log4net会造成NHibernate异常。

黑眼小豆豆 | 园豆:201 (菜鸟二级) | 2016-03-17 23:26
其他回答(2)
0

删除所有引用,然后重新引用同一个版本的log4net,还要注意一些config文件的配置 如果有相关log4net的配置 要改成对应版本的就好了,可以全局搜索一下

史林枫 | 园豆:230 (菜鸟二级) | 2016-02-27 22:14

删除了所有引用,再添加了新版本的引用。而且工程文件,配置文件都考虑到了,还是不行。不知道这个1.2.10.0的相关信息记录在哪,全局都搜不到。

支持(0) 反对(0) 黑眼小豆豆 | 园豆:201 (菜鸟二级) | 2016-02-28 17:55
0

解决了。log4net 1.2.13.0有两种版本,一个oldkey,一个newkey,区别在于PublicKeyToken不同,oldkey的PublicKeyToken跟1.2.10.0是一样的(都是1b44e1d426115821),newkey的PublicKeyToken=669e0ddf0bb1aa2a。我只是选择了使用oldkey那版,然后在相应的项目文件中启动自动绑定重定向(如果不了解什么事自动绑定重定向请自己找资料),然后就OK了。至于这中间的原理及隐含的知识点我也不太懂。比如为什么换一个PublicKeyToken就不认了?我把1.2.10.0版全从解决方案中移除了,相当于从没使用过1.2.10.0,为什么程序还记得,它的遗留信息在哪里记着?知识全面精细方能不惑。努力!

黑眼小豆豆 | 园豆:201 (菜鸟二级) | 2016-03-01 10:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册