Saltar al contenido

System.BadImageFormatException: no se pudo cargar el archivo o ensamblado (desde installutil.exe)

Solución:

Algunos detalles más para completar en caso de que ayude a alguien …

Tenga en cuenta que la razón más común para esta excepción en estos días es intentar cargar un archivo específico de 32 bits (/platform:x86) DLL en un proceso de 64 bits o viceversa (es decir, cargar un (/platform:x64) DLL en un proceso de 32 bits). Si tu platform no es específico/platform:AnyCpu), esto no surgirá (asumiendo que las dependencias referenciadas no tienen el bitness incorrecto).

En otras palabras, ejecutando:

% windir% Microsoft.NET Framework v2.0.50727 installutil.exe

o:

% windir% Microsoft.NET Framework64 v2.0.50727 installutil.exe

no funcionará (sustitúyalo en otras versiones del marco: v1.1.4322 (Solo 32 bits, por lo que este problema no surge) y v4.0.30319 como se desee en lo anterior).

Obviamente, como se explica en la otra respuesta, también se necesitará el número de versión .NET del installutil está ejecutando para ser> = (preferiblemente =) el del archivo EXE / DLL del que está ejecutando el instalador.

Por último, tenga en cuenta que en Visual Studio 2010, las herramientas generarán de forma predeterminada binarios x86 (en lugar de Cualquier CPU como anteriormente).

Detalles completos de System.BadImageFormatException (decir que la única causa es una falta de coincidencia de bits es realmente una simplificación excesiva).

Otra razón para un BadImageFormatException bajo un x64 instalador es que en Visual Studio 2010, el predeterminado .vdproj El tipo de proyecto de instalación genera un InstallUtilLib calce, incluso en un sistema x64 (Busque “acciones personalizadas administradas de 64 bits que generan una excepción System.BadImageFormatException” en la página).

Asegúrese de que el Framework más nuevo (el que compiló su aplicación) sea el primero en la RUTA. Eso me solucionó el problema. (Encontrado en un foro)

La clave es establecer la configuración del procesador de coincidencia para el proyecto, que se encuentra en dos lugares.

ingrese la descripción de la imagen aquí

Y también asegúrese de que la configuración de la arquitectura sea la misma en el menú Prueba >> Configuración de prueba >> Arquitectura de procesador predeterminada >> como se muestra a continuación.

ingrese la descripción de la imagen aquí

Esto es para VS2013 pero quizás lo mismo para otras versiones también.

Actualización – Para VS2019:

ingrese la descripción de la imagen aquí

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *