我们有一个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
由于这些不同,我不能使用程序集重定向(使所有框架使用相同版本的log4net)或代码库(仅使新框架使用版本1.2.11.0)通过web.config中的运行时元素。
我的选择是什么?
(为什么log4net在不同版本之间不断更改publickeytokens呢?据我了解,丢失密钥是1.2.9.0和1.2.10.0版本之间切换的原因,他们是否再次丢失了密钥?如果他们需要,我会自愿提供我的Dropbox来保存它...)
编辑:好吧,log4net的人显然认为发布两个密钥是个好主意,但这意味着您使用的每个框架都需要同意他们喜欢哪一个版本,否则这些框架无法在同一个应用程序域中并存。我是唯一发现这个想法很可怕的人吗?如果每个人都这样做,那么一切都会崩溃,对吧?
编辑2:正如我所说,我没有在我的业务代码中使用log4net,但我使用了几个依赖于1.2.10.0版本的框架,当我尝试使用一个依赖于1.2.11.0版本(新密钥)的新框架时,问题就出现了,因此Stefans的答案并不适用,因为新框架将期望新密钥,而不是旧的密钥。
由于这些不同,我不能使用程序集重定向(使所有框架使用相同版本的log4net)或代码库(仅使新框架使用版本1.2.11.0)通过web.config中的运行时元素。
我的选择是什么?
(为什么log4net在不同版本之间不断更改publickeytokens呢?据我了解,丢失密钥是1.2.9.0和1.2.10.0版本之间切换的原因,他们是否再次丢失了密钥?如果他们需要,我会自愿提供我的Dropbox来保存它...)
编辑:好吧,log4net的人显然认为发布两个密钥是个好主意,但这意味着您使用的每个框架都需要同意他们喜欢哪一个版本,否则这些框架无法在同一个应用程序域中并存。我是唯一发现这个想法很可怕的人吗?如果每个人都这样做,那么一切都会崩溃,对吧?
编辑2:正如我所说,我没有在我的业务代码中使用log4net,但我使用了几个依赖于1.2.10.0版本的框架,当我尝试使用一个依赖于1.2.11.0版本(新密钥)的新框架时,问题就出现了,因此Stefans的答案并不适用,因为新框架将期望新密钥,而不是旧的密钥。