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

Nav*_*utt 17 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>
Run Code Online (Sandbox Code Playgroud)

然后在这里引用此文件

  <log4net configSource="Log4Net.config" />
  <system.serviceModel>
Run Code Online (Sandbox Code Playgroud)

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

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.
Run Code Online (Sandbox Code Playgroud)

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

如何更改装配版本?

pep*_*epo 15

似乎您的解决方案中的某个项目或者某些第三方DLL已经使用不同版本的log4net构建.您可以在所有项目中更新对log4net的引用(使用第三方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>
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请查看msdn上的文档页面.