Could not load file or assembly ‘log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821’ or one of its dependencies.

 

Madre mía, madre mía, las horas perdidas en semejante tontería.

Si publicas con ClickOnce y si tu proyecto utiliza Crystal Reports y si se te ocurre añadirle log4net (http://logging.apache.org/log4net/) en su última versión la 2.11, y si compilas para “ANY CPU”, prepárate!!

Cuando no te falla la instalación en 32bits, te falla en 64, y viceversa.

Empezarás a obtener distintos errores, el más común, el del título, pero a medida que vayas haciendo pruebas para solucionarlo, te pueden aparecer otros durante la instalación de tu aplicación, como el “log4net ya existe”, que si “no hay espacio en disco”, etc, etc.

Solución (que es lo importante):

Añade a tu proyecto la versión 2.11, pero asegúrate de no hacerlo desde NuGet. Ves a la web y descárgate los binarios, eso sí, CON LA FIRMA VIEJA!!

Si publicas ahora, verás que te funcionará bien en 64bits, pero en 32, te dará el mensaje del título.

El último paso es indicar en los “Applications files…” que excluya el fichero “log4net.dll”.

De este modo, nuestra aplicación siempre cogerá la dll desde el GAC, ya sea en 32 o 64, eso sí, cogerá la 2.10, que es la que mete Crystal.