No se pudo cargar el archivo o el ensamblado... Se intentó cargar un programa con un formato incorrecto (System.BadImageFormatException)
Tengo dos proyectos ProjectA
y ProjectB
. ProjectB
es una aplicación de consola, que depende de ProjectA
. Ayer todo estaba funcionando bien, pero de repente hoy, cuando ejecuto, ProjectB
aparece esto:
BadImageFormatException no se controló :
no se pudo cargar el archivo o ensamblado 'ProjectA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' o una de sus dependencias. Se intentó cargar un programa con un formato incorrecto.
Ambos son simplemente proyectos normales, sin dependencias de ningún otro proyecto que no sea .Net. Ambos son completamente .Net: no hay código nativo ni P/Invoke. Tengo otros proyectos de los que dependo ProjectA
y todavía funcionan bien.
Cosas que he probado:
- Asegúrese de que ambos proyectos estén configurados en "Cualquier CPU", con la casilla de verificación marcada. Ellos son.
- Asegúrese de que ambos proyectos sean para el mismo Target Framework (.Net 4.0 Client Profile) .
- En ProyectoB --> Referencias --> ProyectoA --> Propiedades, asegúrese de que "Copiar local" esté configurado en "Verdadero" _ (verifiqué que ProjectA.dll se está copiando correctamente)
- Limpiar/reconstruir la solución. Incluso intenté eliminar manualmente las carpetas /bin y /obj en ambos proyectos.
- Reinicie Visual Studio. Reinicie mi computadora.
- Consulte una copia completamente nueva del repositorio.
Pero sigo recibiendo el mismo error. No tengo idea de qué hice para causar esto ni cómo solucionarlo. ¿Algunas ideas?
Estoy bastante seguro de que tienes un conflicto de 32 bits/64 bits. Parece que su proyecto principal podría estar configurado en 32 bits, mientras que la clase a la que hace referencia está configurada en 64 bits. Intente mirar esta pregunta SO y esta también . Entre los dos, deberías poder resolver tu problema.
La APLICACIÓN está configurada para ejecutarse en 64 bits, pero la DLL se ejecuta en 32 bits para mitigar esto, navegue a IIS >> Grupo de aplicaciones >> Configuración avanzada >> Habilite aplicaciones de 32 bits y luego configúrelas en verdadero.
Es posible que tenga problemas con su sitio web después de implementarlo en el servidor.
Luego debe ajustar su grupo de aplicaciones para Habilitar aplicaciones de 32 bits .
Pasos
- Abrir el Administrador de IIS
- Haga clic en Grupos de aplicaciones
- Seleccione cualquier grupo de aplicaciones que esté utilizando
Desde el panel derecho, haga clic en Configuración avanzada...
Establezca Habilitar aplicaciones de 32 bits en Verdadero
Acabo de recibir este mensaje de error al ejecutar IIS Express en Visual Studio 2015. En mi caso, necesitaba ejecutar la versión de 64 bits de IIS Express:
Herramientas → Opciones → Proyectos y soluciones → Proyectos web
Marque la casilla que dice "Usar la versión de 64 bits de IIS Express para sitios web y proyectos".
Captura de pantalla:
Yo tuve el mísmo problema. Había configurado el "Destino de plataforma" del Proyecto A ("Proyecto A" (clic derecho)->Propiedades->Construir->"Destino de plataforma") en x86, pero mantuve el Proyecto B en "Cualquier CPU". Configurar el Proyecto B en "x86" solucionó este problema.