我们有一个asp.net 4.0项目,它使用几个依赖于log4net版本1.2.10.0的框架。今天,我试图包括一个依赖于log4net版本1.2.11.0的新框架,从那时起,我就一直陷入困境:
log4net 1.2.10.0具有publickeytoken = 1b44e1d426115821
log4net 1.2.11.0具有publickeytoken = 669e0ddf0bb1aa2a
由于这些不同,因此我无法通过web.config中的runtime元素使用程序集重定向(使所有框架使用相同版本的log4net)或代码库(仅使新框架使用1.2.11.0版本)。
我在这里有什么选择?
(为什么log4net会在版本之间不断变化,因为据我所知,丢失了密钥是在版本1.2.9.0和1.2.10.0之间进行切换的原因,它们又失去了密钥吗?我将自愿使用我的保管箱在需要时保持安全...)
编辑:好的,所以log4net的人显然有一个想法,用两个键来发布是个好主意,但这意味着您使用的每个框架都需要就他们偏爱的两种风格中的哪个达成一致,否则这些框架将无法正常工作。在同一个appdomain中并排。我是唯一发现这个可怕想法的人吗?如果每个人都这样做,那么一切都会崩溃,对吗?
Edit2:正如我所说,我没有在业务代码中使用log4net,而是使用了一些依赖于1.2.10.0的框架,当我尝试使用依赖于1.2.11.0的新框架时出现了问题(新密钥),因此Stefans的答案不适用,因为新框架将需要新密钥,而不是旧密钥