Solución de problemas de excepciones: System.BadImageFormatException
Cuando la imagen de archivo de una DLL o de un programa ejecutable no es válida, se produce una excepción BadImageFormatException.
Sugerencias asociadas
Si la aplicación usa componentes de 32 bits, compruebe que siempre se ejecuta como una aplicación de 32 bits.
Si la propiedad Destino de la plataforma del proyecto de aplicación se establece en AnyCPU, la aplicación compilada se puede ejecutar en el modo de 64 o 32 bits. Cuando se ejecuta como una aplicación de 64 bits, el compilador Just-In-Time (JIT) genera código nativo de 64 bits. Si la aplicación depende de un componente administrado o no administrado de 32 bits, dicho componente no se cargará en el modo de 64 bits. Para resolver este problema, establezca la propiedad Destino de la plataforma del proyecto en x86 y vuelva a compilarlo.Compruebe que no está usando un componente que fue creado con una versión diferente de .NET Framework.
Esta excepción se produce cuando una aplicación o componente desarrollado mediante .NET Framework 1,0 o .NET Framework 1.1 intenta cargar un ensamblado desarrollado mediante .NET Framework 2.0 SP1 o posterior, o cuando una aplicación desarrollada mediante .NET Framework 2.0 SP1 o .NET Framework 3,5 intenta cargar un ensamblado desarrollado mediante .NET Framework 4. La excepción BadImageFormatException se puede notificar como un error en tiempo de compilación, o la excepción puede producirse en tiempo de ejecución. Vea la clase BadImageFormatException si necesita un ejemplo.Asegúrese de que la imagen del archivo es un ensamblado o módulo administrado válido.
Esta excepción se produce cuando una biblioteca de vínculos dinámicos o un ejecutable no administrado se pasa al método Load para su carga.Para obtener más información, los usuarios de Visual Basic pueden consultar Solucionar problemas de interoperabilidad (Visual Basic).
Comentarios
Esta excepción se puede producir al reflejar en archivos ejecutables de C++. Lo más probable es que se deba a que el compilador de C++ ha eliminado las direcciones de reubicación o la sección .Reloc del archivo ejecutable. Para conservar la dirección de reubicación en un archivo ejecutable de C++, especifique /fixed:no al vincular.
Para conocer más causas de esta excepción, vea la clase BadImageFormatException.
Vea también
Tareas
Cómo: Usar el Asistente de excepciones