Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Could not load file or assembly 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821'

I have added Log4Net in my project using NuGet Package Manager and it is showing Version 2.3 installed on my system.

Here is my config entry:

  <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>

and then reference to this file here

  <log4net configSource="Log4Net.config" />
  <system.serviceModel>

but when I run the website. The following exception is displayed.

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.

I have seen the dll is present in the bin folder but is showing version 1.2.13.0 instead.

How can I change the assembly version?

like image 685
Naveed Butt Avatar asked Jun 03 '15 05:06

Naveed Butt


1 Answers

It seems that one of the projects in your solution or maybe some 3rd party dll has been built with different version of log4net. Either you update references to log4net in all projects (with 3rd party dlls this will not help) or you could add assembly redirection setting to the web.config (app.config) that will redirect specified version/versions of log4net to new one.

Put this section to your web.config (app.config) anywhere under configuration element

<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>

For more information look at the documentation page on msdn.

like image 188
pepo Avatar answered Oct 07 '22 21:10

pepo