[英]Could not load file or assembly 'log4net, Version=2.0.8.0, Culture=neutral, PublicKeyToken=1b44e1d426115821' or one of its dependencies
[英]Could not load file or assembly 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821'
我使用 NuGet 包管理器在我的项目中添加了 Log4Net,它显示我的系统上安装了 2.3 版。
这是我的配置条目:
<configSections>
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
然后在此处引用此文件
<log4net configSource="Log4Net.config" />
<system.serviceModel>
但是当我运行网站时。 显示以下异常。
无法加载文件或程序集“log4net,版本=1.2.10.0,文化=中性,PublicKeyToken=1b44e1d426115821”或其依赖项之一。 定位的程序集的清单定义与程序集引用不匹配。 (来自 HRESULT 的异常:0x80131040)
说明:在执行当前 Web 请求期间发生未处理的异常。 请查看堆栈跟踪以获取有关错误及其在代码中的来源的更多信息。
异常详细信息:System.IO.FileLoadException:无法加载文件或程序集“log4net,版本=1.2.10.0,Culture=neutral,PublicKeyToken=1b44e1d426115821”或其依赖项之一。 定位的程序集的清单定义与程序集引用不匹配。 (来自 HRESULT 的异常:0x80131040)
源错误:
执行当前 Web 请求期间生成了未处理的异常。 可以使用下面的异常堆栈跟踪来识别有关异常来源和位置的信息。
我已经看到 dll 存在于 bin 文件夹中,但显示的是 1.2.13.0 版本。
如何更改程序集版本?
似乎您的解决方案中的项目之一或某些 3rd 方 dll 已使用不同版本的 log4net 构建。 您可以在所有项目中更新对 log4net 的引用(使用 3rd 方 dll 这将无济于事),或者您可以将程序集重定向设置添加到 web.config (app.config) 中,该设置会将 log4net 的指定版本/版本重定向到新版本。
将此部分放入您的 web.config (app.config) 配置元素下的任何位置
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="log4net"
publicKeyToken="1b44e1d426115821"
culture="neutral" />
<bindingRedirect oldVersion="1.2.10.0"
newVersion="1.2.13.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.