我们有一个 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 中的运行时元素使用程序集重定向(让所有框架使用相同版本的 log4net)或代码库(让新框架使用版本 1.2.11.0)。
我在这里有什么选择?
(以及为什么 log4net 会在版本之间不断更改 publickeytokens,据我所知,丢失的密钥是在版本 1.2.9.0 和 1.2.10.0 之间切换的原因,他们是否又丢失了密钥?我会自愿提供我的保管箱如果他们需要,请确保其安全...)
编辑:好的,所以 log4net 的家伙显然认为用两个键发布是个好主意,但这意味着你使用的每个框架都需要就他们喜欢的两种风格中的哪一种达成一致,否则这些框架不能工作并排在同一个应用程序域中。只有我一个人觉得这是个可怕的主意吗?如果每个人都这样做,那么一切都会崩溃,对吗?
Edit2:正如我所说,我没有在我的业务代码中使用 log4net,但我使用了几个依赖于 1.2.10.0 的框架,当我尝试使用依赖于 1.2.11.0 的新框架时出现问题(新键),所以 Stefans 的回答不适用,因为新框架会期待新的密钥,而不是旧的