当我尝试加载log4net程序集时抛出错误
我尝试构建使用LinqToExcel库的项目。 另外,我使用log4net来写日志。
当我尝试运行这些代码行时,我的问题就开始了:
var excel = new ExcelQueryFactory(ExcelPath);
return (from r in excel.Worksheet<RowDetails>(company.Name)
select r).Count();
这行引发的异常:
错误MyProj.Program Main:System.IO.FileLoadException:无法加载文件或程序集'log4net,版本= 1.2.11.0,Culture = neutral,PublicKeyToken = 669e0ddf0bb1aa2a'或其依赖项之一。 定位的程序集清单定义与程序集引用不匹配。 (来自HRESULT的例外:0x80131040)文件名:'log4net,Version = 1.2.11.0,Culture = neutral,PublicKeyToken = 669e0ddf0bb1aa2a'
请注意,我很成功地在此行之前使用log4net。
我将不胜感激任何帮助。
十分感谢!
正如marc_s指出的那样,当试图加载相同程序集的不同版本时,通常会出现此问题。 确保您的项目使用与LinqToExcel库相同的程序集版本,该库也依赖于log4net。 另外任何其他库应该使用相同的程序集版本。 为了解决这个问题,你也可以尝试在你的app.config中使用程序集重定向,如下所示:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" />
<bindingRedirect oldVersion="1.2.10.0" newVersion="1.2.11.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
尝试使用nuget进行安装
Install-Package log4net -Version 2.0.0
版本2.0.0适用于log4net 1.2.11
我有类似的问题。 我认为问题出在LinqtoExcel引用Log4Net版本1.2.11,并且您引用了Log4Net sepratly并且您获得了最新的1.2.13版本。 在构建输出时,你最终会得到1.2.13,当LintoExcel调用Log4Net时,它期望1.2.11和错误。
链接地址: http://www.djcxy.com/p/43657.html