gpt4 book ai didi

.net - 我如何解决 log4net 不断更改 publickeytoken 的问题

转载 作者:行者123 更新时间:2023-12-03 04:52:06 25 4
gpt4 key购买 nike

我们有一个 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,据我所知,丢失的 key 是版本 1.2.9.0 和 1.2.10.0 之间切换的原因,他们是否再次丢失了 key ?我会如果他们需要的话,请自愿保管我的保管箱以确保其安全...)

编辑:好的,所以 log4net 人员显然认为使用两个 key 发布是一个好主意,但这意味着您使用的每个框架都需要就达成一致 他们喜欢的两种风格,或者这些框架不能在同一个应用程序域中并行工作。我是唯一一个认为这是一个可怕想法的人吗?如果每个人都这样做,那么一切都会崩溃,对吧?

Edit2:正如我所说,我没有在业务代码中使用log4net,但我使用了几个依赖于1.2.10.0的框架,当我尝试使用依赖于1.2.11.0的新框架时出现了问题(新 key ),所以 Stefans 的答案不适用,因为新框架将期望新 key ,而不是旧 key

最佳答案

这就是我在 1.2.11.0 版本上工作的方法。

  1. 首先诅咒 apache 更改 key :)
  2. Download使用旧 key 签名的 1.2.11.0 版本。
  3. 通过删除对 log4net(新 key )的任何直接引用来整理您自己的代码,并替换为对使用旧 key 签名的程序集的引用。
  4. 通过将此段包含在您的 web/app.config 中,整理出您可能拥有的任何依赖程序集
   <runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="log4net" publicKeyToken="1b44e1d426115821" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-1.2.10.0"
newVersion="1.2.11.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>

关于.net - 我如何解决 log4net 不断更改 publickeytoken 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8743992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com