Could not load file or assembly log4net

disasterkid picture disasterkid · Oct 27, 2014 · Viewed 24.9k times · Source

I have added log4net to my project and it is working just fine on my machine, but when I sent the release version of my application to my colleague, he receives this FileNotFoundException:

Could not load file or assembly 'log4net, Version=1.2.13.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a'

But the strange thing is that in my app.config I'm not even using the above version of 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>

Answer

Jan Petter Jetmundsen picture Jan Petter Jetmundsen · Oct 27, 2014

Do you use other third party libraries? Maybe one of them requires this particular version of log4net. If this is the case, this can be resolved using assembly binding in your applications app.config file.

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

and the put this the 1.2.13.0 version of log4net in a sub-folder called log4netv1.2.13.0

You may also try to redirecting all references to log4net to a specific (your) version using bindingRedirect. http://msdn.microsoft.com/en-us/library/7wd6ex19(v=vs.110).aspx