2012-04-29 42 views
8

Intento crear un proyecto que use la biblioteca LinqToExcel. Además, uso log4net para escribir registros.Error al intentar cargar el ensamblado log4net

Mi problema comenzó cuando estoy tryomg para ejecutar esta líneas de código:

var excel = new ExcelQueryFactory(ExcelPath); 
return (from r in excel.Worksheet<RowDetails>(company.Name) 
     select r).Count(); 

Esta línea excepción lanzada:

ERROR MyProj.Program principal: System.IO.FileLoadException: ¿Podría no carga archivo o ensamblado 'log4net, Versión = 1.2.11.0, Cultura = neutro, PublicKeyToken = 669e0ddf0bb1aa2a' o una de sus dependencias. La definición del manifiesto del ensamblado ubicado no coincide con la referencia del ensamblaje . (Excepción de HRESULT: 0x80131040) Nombre de archivo: 'log4net, = Versión 1.2.11.0, Culture = neutral, PublicKeyToken = 669e0ddf0bb1aa2a'

Es importante tener en cuenta que soy exitosa utilizar log4net antes de esta línea.

Agradeceria cualquier ayuda.

¡Muchas gracias!

+2

Parece que está cargando versiones diferentes del ensamblaje log4net. ¿Podría ser que tiene varios log4net.dll en su sistema de archivos, y el incorrecto es recogido para ser cargado? –

+0

Tengo el mismo problema; la firma coincide en mi proyecto de implementación, el dll se implementa en el mismo directorio que mi ensamblado, pero obtengo este error. La primera parte de todos modos. –

+0

1.2.11+ viene en dos sabores, "clave antigua" y "nueva clave", parece que necesita la nueva clave de sabor ... –

Respuesta

6

Como señaló marc_s, este problema generalmente aparece cuando se intenta cargar diferentes versiones del mismo ensamblaje. Asegúrese de que su proyecto utilice la misma versión de ensamblaje que la biblioteca LinqToExcel, que también depende de log4net. También cualquier otra biblioteca debería usar la misma versión de ensamblaje. Para resolver el problema, también se puede tratar de utilizar el montaje redirigir en su app.config de este modo:

<runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <dependentAssembly> 
     <assemblyIdentity name="log4net" publicKeyToken="669e0ddf0bb1aa2a" culture="neutral" /> 
     <bindingRedirect oldVersion="1.2.10.0" newVersion="1.2.11.0" /> 
     </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
6

intentar instalarlo utilizando Nuget

Install-Package log4net -Version 2.0.0 

Versión 2.0.0 es para log4net 1.2. 11

1

Tengo un problema similar. Creo que el problema está en LinqtoExcel haciendo referencia a Log4Net versión 1.2.11, y ha hecho referencia a Log4Net sepratly y obtiene la última versión 1.2.13. En el resultado de compilación terminarás con 1.2.13, y cuando LintoExcel llama a Log4Net, espera 1.2.11 y aparece el error.

0

Tuve este problema después de actualizar log4net a través de NuGet, solo para encontrar que la versión más reciente estaba firmada con una clave diferente.

Puede obtener la versión 'oldkey' de the apache log4net site y luego funcionó para mí.

Cuestiones relacionadas