gpt4 book ai didi

.net - 在同一个解决方案中引用2个不同版本的log4net

转载 作者:行者123 更新时间:2023-12-02 15:53:44 25 4
gpt4 key购买 nike

我正在使用引用 log4net 1.2.10.0 的 NHibernate 2.1.2.400。在同一个项目中,我还使用了simple accounting SDK,遗憾的是它仍然使用log4net 1.2.9.0。

因此,如果我引用 log4net 1.2.10.0,我可以让 NHibernate 工作,但 simpleSDK 不起作用。反之亦然...

我猜测大多数问题都来自 log4net 更改了其程序集 key 这一事实。我尝试使用绑定(bind)重定向,但没有成功:这 2 个 DLL 没有相同的 key 。

我正在考虑重新编译 NHibernate 以使用 log4net 1.2.9.0,但这似乎是错误的做法,而且我的感觉是 Simply Accounting 不会很快更新其 SDK 以使用 log4net 1.2.10.0。

处理这个问题的最佳方法是什么?到底有没有可能解决?

最佳答案

我通过使用这个answer to a similar question找到了解决方案

您在项目中创建 2 个文件夹,每个文件夹对应 log4net 的每个版本。通过将文件添加到解决方案(不添加引用),将每个 log4net.dll 放入其相应的文件夹中。您可以将复制到输出目录属性设置为始终复制,以便在构建时自动复制到输出文件夹。

然后您可以通过添加如下内容来修改 app.config 文件:

<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="log4net" publicKeyToken="681549d62126b7b8" />
<codeBase version="1.2.9.0" href="log4netv1.2.9.0\log4net.dll" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="log4net" publicKeyToken="1b44e1d426115821" />
<codeBase version="1.2.10.0" href="log4netv1.2.10.0\log4net.dll" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" />
<codeBase version="1.2.11.0" href="log4net.dll" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

您可以使用 sn -T [程序集名称] 获取程序集的公钥标记

关于.net - 在同一个解决方案中引用2个不同版本的log4net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3158928/

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