2014-10-27 16 views
8

ho aggiunto log4net al mio progetto e si sta lavorando bene sulla mia macchina, ma quando ho inviato la versione della mia candidatura al mio collega, riceve questo FileNotFoundException:Impossibile caricare il file o il montaggio log4net

Impossibile caricare il file o l'assembly 'log4net, Version = 1.2.13.0, Lingua = il neutro PublicKeyToken = 669e0ddf0bb1aa2a'

Ma la cosa strana è che nel mio app.config non sto anche utilizzando la versione di cui sopra di 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> 
+0

Guarda http://stackoverflow.com/questions/8743992/how-do-i-work-around-log4net-keeping-changing-publickeytoken Potrebbe essere questo è ciò che è necessario nel tuo caso. – csprabala

+0

@csprabala Sto provando a fare le riparazioni. Ma perché sta funzionando bene sulla mia macchina? – Disasterkid

+0

So che sembra stupido, ma hai inviato le DLL log4net con la tua applicazione al tuo collega? –

risposta

6

Utilizzi altre librerie di terze parti? Forse uno di questi richiede questa particolare versione di log4net. Se questo è il caso, questo può essere risolto utilizzando l'associazione dell'assieme nel file app.config dell'applicazione.

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

e put questa la versione 1.2.13.0 di log4net in una sotto-cartella chiamata log4netv1.2.13.0

Si può anche provare a reindirizzare tutti i riferimenti a log4net ad una specifica (il vostro) versione usando bindingRedirect. http://msdn.microsoft.com/en-us/library/7wd6ex19(v=vs.110).aspx

+1

Ho appena eseguito il downgrade a log4net 1.2.0 e ha iniziato a funzionare. Dal momento che non sto cercando problemi in futuro, penso che per ora mi atterò a questo. – Disasterkid

+0

metti una cartella, reindirizza ... di cosa stai parlando? Tutti usano i pacchetti di nuget da anni! non puoi semplicemente mettere la libreria in una cartella che vuoi e risolvere il problema! –

2

Ha subito lo stesso problema. La libreria LinqToExcel utilizzava una versione diversa di log4net.

per risolverlo:

  • eliminare la versione log4net in Riferimenti.

  • Vai a Strumenti, Nuget Packet Manager, Console Gestione pacchetti.

  • Run:

Install-Package log4net -Version 2.0.3

Maggiori dettagli qui:

https://www.nuget.org/packages/log4net/2.0.3

Problemi correlati