Saltar al contenido

System.BadImageFormatException: no se pudo cargar el archivo o el ensamblaje (de installutil.exe)

Este dilema se puede tratar de diferentes maneras, sin embargo te dejamos la que para nosotros es la respuesta más completa.

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, cargue un archivo específico de 64 bits (/platform:x64) DLL en un proceso de 32 bits). Si tu platform es inespecífico (/platform:AnyCpu), esto no surgirá (suponiendo que ninguna dependencia a la que se haga referencia tenga el valor de bits incorrecto).

En otras palabras, ejecutando:

%windir%Microsoft.NETFrameworkv2.0.50727installutil.exe

o:

%windir%Microsoft.NETFramework64v2.0.50727installutil.exe

no funcionará (sustituir en otras versiones de framework: v1.1.4322 (solo 32 bits, por lo que este problema no surge) y v4.0.30319 como se desea en lo anterior).

Obviamente, como se explica en la otra respuesta, también se necesitará el número de versión de .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 archivos binarios x86 (en lugar de Cualquier CPU como anteriormente).

Detalles completos de System.BadImageFormatException (¡decir que la única causa es que la mordida no coincide es realmente una simplificación excesiva!).

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

Asegúrese de que el Framework más nuevo (con el que compiló su aplicación) esté primero en la RUTA. Eso resolvió el problema para mí. (Encontrado en un foro)

los key es establecer la configuración del procesador de coincidencias 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 tal vez también para otras versiones.

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 *