无法加载文件或程序集log4net

时间:2014-10-27 09:28:15

标签: c# .net log4net filenotfoundexception

我已将log4net添加到我的项目中,它在我的计算机上工作正常,但当我将我的应用程序的发布版本发送给我的同事时,他收到了FileNotFoundException

  

无法加载文件或程序集' log4net,版本= 1.2.13.0,   Culture = neutral,PublicKeyToken = 669e0ddf0bb1aa2a'

但奇怪的是,我的app.config我甚至没有使用上述版本的log4net:

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="BizWizard.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</sectionGroup>

2 个答案:

答案 0 :(得分:7)

您使用其他第三方图书馆吗?也许其中一个需要这个特定版本的log4net。如果是这种情况,可以使用应用程序app.config文件中的程序集绑定来解决此问题。

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" />
      <codeBase version="1.2.13.0" href="log4netv1.2.13.0\log4net.dll" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

并将这个1.2.13.0版本的log4net放在名为log4netv1.2.13.0的子文件夹中

您也可以尝试使用bindingRedirect将对log4net的所有引用重定向到特定(您的)版本。 http://msdn.microsoft.com/en-us/library/7wd6ex19(v=vs.110).aspx

答案 1 :(得分:2)

遇到同样的问题。 LinqToExcel库使用的是不同版本的log4net。

要解决它:

  • 删除参考文献中的旧log4net版本。

  • 转到工具,Nuget Packet Manager,软件包管理器控制台。

  • 运行:

Install-Package log4net -Version 2.0.3

此处有更多详情:

https://www.nuget.org/packages/log4net/2.0.3