无法加载文件或程序集'log4net,Version = 1.2.10.0,Culture = neutral,PublicKeyToken = 1b44e1d426115821'

时间:2015-06-03 05:38:44

标签: asp.net wcf log4net

我使用NuGet Package Manager在我的项目中添加了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>

但是当我运行网站时。显示以下异常。

Could not load file or assembly 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.IO.FileLoadException: Could not load file or assembly 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

我已经看到dll存在于bin文件夹中,但显示的是版本1.2.13.0。

如何更改装配版本?

1 个答案:

答案 0 :(得分:15)

似乎您的解决方案中的某个项目或者某些第三方dll已使用不同版本的log4net构建。您可以在所有项目中更新对log4net的引用(使用第三方dll也无济于事),或者您可以将程序集重定向设置添加到web.config(app.config),它将指定版本的log4net重定向到新的。 / p>

将此部分放在配置元素

下的任何位置的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>

有关详细信息,请查看documentation page on msdn