c# - swiplcs - No se pudo cargar la excepción de archivo o ensamblaje
no se puede cargar el archivo o ensamblado vslangproj80 dll (12)
¡Lo que funcionó para mí es hacer una actualización de BIOS en mi máquina!
¿Alguna idea de lo que podría estar causando esta excepción?
Tengo un proyecto de servicio web, cuando cargo el enlace me sale
No se pudo cargar el archivo o ensamblado ''Interop.DIB'' o una de sus dependencias. Se intentó cargar un programa con un formato incorrecto.
Detalles de la excepción: System.BadImageFormatException: no se pudo cargar el archivo o ensamblado ''Interop.DIB'' o una de sus dependencias. Se intentó cargar un programa con un formato incorrecto.
Excepciones internas:
[BadImageFormatException: no se pudo cargar el archivo o ensamblado ''Interop.DIB'' o una de sus dependencias. Se intentó cargar un programa con un formato incorrecto.]
[ConfigurationErrorsException: no se pudo cargar el archivo o ensamblado ''Interop.DIB'' o una de sus dependencias. Se intentó cargar un programa con un formato incorrecto.]
[HttpException (0x80004005): no se pudo cargar el archivo o ensamblado ''Interop.DIB'' o una de sus dependencias. Se intentó cargar un programa con un formato incorrecto.]
Información de versión:
Versión de Microsoft .NET Framework: 4.0.30319; Versión ASP.NET: 4.0.30319.272
Este trabajo para mí, si no es para ti, no rechaces. Es descortés
Así que funciona si cambio en el proyecto c # de Cualquier CPU a x86 (todos los archivos DLL se compilan en WIN32) desde Propiedades -> Compilación -> Objetivo de plataforma. Trabajo en una PC Win7 de 64 bits y aparentemente si uso Cualquier CPU como destino no encuentra la envoltura dll.
https://www.codeproject.com/Questions/358717/Could-not-load-file-or-assembly-dll-file
Finalmente solucioné esta excepción al eliminar la entrada en el applicationhost.config para IIS Express (C: / Users {username} / Documents / IISExpress / config / applicationhost.config).
También paré la instancia de IIS express, la limpié y reconstruí en VS. Luego cambie el archivo de configuración, luego reinicie VS 2013.
La causa más común en mi experiencia es que realizó un cambio en un ensamblaje al que se hace referencia que requiere la reconstrucción de otros ensamblados utilizando ese ensamblaje modificado, y no los reconstruyó.
Ejemplo # 1: tiene un EXE que hace referencia a una DLL. Agregas algo a la DLL a la que se hace referencia que agrega un nuevo método, un nuevo parámetro, lo que sea. Esto cambia la "firma" externa de la DLL; es decir, la ubicación en memoria de varios puntos de entrada. Usted no reconstruye el EXE. Cuando el EXE carga e intenta hacer referencia al nuevo DLL, su antiguo punto de entrada ya no es válido, por lo que no puede ejecutar el código que necesita.
Ejemplo # 2: tiene un EXE x86 que hace referencia a una DLL. Esta DLL también debe compilarse para x86 (o cualquier CPU). Si lo reconstruye para x64, el EXE, que se ejecuta en un espacio de 32 bits, no entenderá las instrucciones y registrará referencias al mundo "extendido" de 64 bits, y llorará tío.
Lo que funcionó para mí fue agregar el ensamblado al GAC. Para hacer eso, ejecuté gacutil -i PATH_TO_ASSEMBLY desde el símbolo del sistema de Visual Studio
Mi error solucionado, con cambio de opción de compilación a:
en mi proyecto de victoria de C # .net:
Propiedades> Build> Platform Target> ''x86''
Accidentalmente cambio su valor a ''Cualquier CPU'' y olvido cambiarlo.
Ok, la respuesta es Got to Start-> Run-> type inetmgr y en los pools de aplicaciones de la izquierda, selecciona DefaultAppPool y el nombre del directorio virtual de la aplicación y para ambos asegúrate de habilitar las aplicaciones de 32 bits en true, estoy usando IIS7.0 y Windows 7 de 64 bits.
Si tuviera que adivinar, o bien es a) que no se encuentra el conjunto interoperado ob) que la DLL COM no está registrada en el registro local. Simplemente copiar DIB a la carpeta / bin no es suficiente cuando está monkeando con COM.
Creo que (B) es la respuesta más probable a lo que está sucediendo.
Tuve el mismo problema en Visual Studio 2015 en Windows 10 x64. Ya estaba compilando en cualquier modo de CPU. Esta fue una aplicación MVC4 predeterminada (no se agregó nada). Encontré una solución simple aquí que funcionó para mí: https://github.com/aspnet/Home/issues/524
En VS 2015: Herramientas> Opciones> Proyectos y soluciones> Proyectos web> Usar la versión de 64 bits de IIS Express para sitios web y proyectos
Una alternativa a este problema es cambiar las propiedades de compilación de su proyecto.
Para vb.net llegamos a Proyecto -> Propiedades -> Compilar -> Opciones de compilación avanzadas Aquí cambiamos la CPU objetivo
BadImageFormatException
generalmente significa conflicto de 64 contra 32 bits. Uno de los conjuntos está configurado en una plataforma específica, es decir, 64 bits o 32 bits, mientras que el otro está configurado o el predeterminado es uno diferente. Compruebe si ambos conjuntos son para la misma plataforma, preferiblemente "Cualquier CPU". En otras palabras, podría ser que un ensamblaje de 64 bits esté intentando cargar 32 bits uno o viceversa.
Esto también se aplica si está llamando a un COM o un DLL que está compilado para una plataforma diferente, por ejemplo, llama a COM / DLL de 32 bits desde un ensamblado en un sistema de 64 bits donde la plataforma del ensamblado sería por defecto a x64. En este caso, ajuste la plataforma de su conjunto para que coincida.
Para cambiar la plataforma, vaya a Propiedades del proyecto -> Construir -> Plataforma.