2015-06-03 15 views
10

Ho aggiunto Log4Net nel mio progetto utilizzando NuGet Package Manager e mostra la versione 2.3 installata sul mio sistema.Impossibile caricare il file o l'assembly 'log4net, Versione = 1.2.10.0, Culture = neutro, PublicKeyToken = 1b44e1d426115821'

Qui è la mia voce di configurazione:

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

e quindi fare riferimento a questo file qui

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

ma quando faccio funzionare il sito. Viene visualizzata la seguente eccezione.

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. 

Ho visto la dll è presente nella cartella bin ma mostra invece la versione 1.2.13.0.

Come posso modificare la versione dell'assieme?

risposta

8

Sembra che uno dei progetti nella soluzione o forse qualche dll di terze parti sia stato creato con una versione diversa di log4net. O si aggiornano i riferimenti a log4net in tutti i progetti (con DLL di terze parti ciò non aiuterà) oppure si potrebbe aggiungere l'impostazione di reindirizzamento dell'assieme al web.config (app.config) che reindirizzerà la versione/versioni specifiche di log4net a quella nuova.

mettere questa sezione per web.config (app.config) ovunque sotto elemento di configurazione

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

Per ulteriori informazioni consultare il documentation page on msdn.

+0

Questa sembra essere la risposta corretta, ma sono riuscito a farlo effettuando il downgrade di 'Log4Net' a' 1.2.10.0' e tutto ha funzionato correttamente. Ora non posso farlo, perché ho già spedito la patch alla produzione. Segnalo ancora la tua risposta per riferimento futuro (per gli altri) –