programa intentado incorrecto formato excepción error con codigo cargar 0x8007000b c# .net x86 64bit

c# - intentado - Error de.net Framework(HRESULT 0x8007000B)



error hresult 0x8007000b (10)

Tengo una aplicación C # que se escribió en una máquina Windows XP de 32 bits con Visual Studio 2005. La aplicación funciona bien en máquinas Windows XP. Sin embargo, cuando intento ejecutarlo en una máquina profesional Windows 7 de 64 bits, aparece el siguiente cuadro de diálogo. en el inicio:

Aquí está el texto completo de los detalles.

See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box. ************** Exception Text ************** System.BadImageFormatException: An attempt was made to load a program with an incorrect format. (Exception from HRESULT: 0x8007000B) at ICSNeoCSharp.IcsNeoDll.icsneoTxMessages(Int32 hObject, IcsSpyMessage& pMsg, Int32 lNetworkID, Int32 lNumMessages) at ICSNeoCSharp.FormDTCApplication.transmitFlowControl(Int32 myArbID) in C:/Documents and Settings/Administrator/Desktop/Adam Stuff ThinkPad/DTC Checker FINAL/frmDTCApp.cs:line 1750 at ICSNeoCSharp.FormDTCApplication.flowControlTimer_Tick(Object sender, EventArgs e) in C:/Documents and Settings/Administrator/Desktop/Adam Stuff ThinkPad/DTC Checker FINAL/frmDTCApp.cs:line 5166 at System.Windows.Forms.Timer.OnTick(EventArgs e) at System.Windows.Forms.Timer.TimerNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ************** Loaded Assemblies ************** mscorlib Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.5472 (Win7SP1GDR.050727-5400) CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll ---------------------------------------- DTC Checker V1.0 Assembly Version: 1.0.4960.25549 Win32 Version: 1.0.4960.25549 CodeBase: file:///C:/DTC%20Checker%20V1.0%20R3/DTC%20Checker%20V1.0%20R3.exe ---------------------------------------- System.Windows.Forms Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.5468 (Win7SP1GDR.050727-5400) CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll ---------------------------------------- System Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.5467 (Win7SP1GDR.050727-5400) CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll ---------------------------------------- System.Drawing Assembly Version: 2.0.0.0 Win32 Version: 2.0.50727.5467 (Win7SP1GDR.050727-5400) CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll ---------------------------------------- Microsoft.Office.Interop.Excel Assembly Version: 12.0.0.0 Win32 Version: 12.0.6600.1000 CodeBase: file:///C:/Windows/assembly/GAC/Microsoft.Office.Interop.Excel/12.0.0.0__71e9bce111e9429c/Microsoft.Office.Interop.Excel.dll ---------------------------------------- ************** JIT Debugging ************** To enable just-in-time (JIT) debugging, the .config file for this application or computer (machine.config) must have the jitDebugging value set in the system.windows.forms section. The application must also be compiled with debugging enabled. For example: <configuration> <system.windows.forms jitDebugging="true" /> </configuration> When JIT debugging is enabled, any unhandled exception will be sent to the JIT debugger registered on the computer rather than be handled by this dialog box.

¿Alguien más ha encontrado este error y ha logrado resolverlo?


Desde mi experiencia, la causa de ese error es la .Net Framework Version

Verifique su versión y actualización de .Net Framework y también verifique la versión .Net de su aplicación.


En mi caso, tuve el error 0x8007000B porque la aplicación se ejecutaba en 32 bits, en mis 64 ventanas 7. Lo resolví yendo a la carpeta windows / syswov64 cambiando la versión de MSVCR110.dll de 64 bits con la versión de MSVCR110.dll de 32 bits.

(No olvides volver a colocar los 64 dll después. Cada vez que necesites ejecutar tu aplicación de 32 bits, solo mueve el dll 32).

Puede encontrar las versiones dll here (descomprímalo antes de pegarlo en la carpeta syswov64).


La solución para mí fue cambiar el grupo de aplicaciones en IIS. Abra las propiedades del grupo de aplicaciones y vaya a Configuración avanzada ... Luego cambie "Habilitar aplicaciones de 32 bits" a Verdadero. El valor predeterminado es False para uno nuevo. La parte del código se estableció en "Cualquier CPU", aunque he solucionado problemas en el pasado al configurar la CPU en x86.


Me gustaría agregar también mi hallazgo: desactivé en las propiedades de un proyecto en la pestaña Generar un "Preferir 32 bits" y obtuve este error. Después de volver a comprobar, se había ido. Tengo cualquier CPU establecida como objetivo.

Soy consciente de que esta no es una solución definitiva, solo una solución de síntomas, pero podría ser de ayuda.



Si bien su aplicación principal puede estar diseñada para AnyCPU, ¿está seguro de que todos los ensamblajes son AnyCPU? ¿Tiene ensamblajes nativos o ensamblajes que contengan código nativo? ¿Están construidos contra x86?

archivo: /// C: /Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll

Esto me dice que la aplicación se está ejecutando como un proceso x64, pero parece que hay algún ensamblaje que no es AnyCPU o x64 que probablemente sea la causa de la excepción BadImageFormatException.

Una cosa que puede intentar es ejecutar la aplicación desde un indicador de comandos de 32 bits (c: / windows / SysWow64 / cmd.exe) para forzar que sea un proceso de 32 bits y ver si funciona. Si eso funciona, definitivamente hay un ensamblaje que no es AnyCPU.


Tuve este error cuando mi solución llamada dll de 32 bits. Además de realizar los cambios en la plataforma a los que se hace referencia en otras respuestas anteriores, en el Proyecto VS2017 {yourproject} Servicios de Propiedades, tuve que cambiar "Usar la autenticación de Windows" a "Usar la autenticación de formularios"


Tuve que combinar soluciones de 2-3 respuestas diferentes para resolver el mismo error. La razón es que la configuración final tenía dlls de plataformas x86 y x64 (en carpetas separadas para ejes separados).

1) Establecí el objetivo de la plataforma de mi aplicación principal en 64 bits y dejé los ajustes de configuración tal como están y los construí:

2) Configuré la plataforma de destino de mi proyecto de implementación como x64.

3) Las dlls se estaban mezclando entre las carpetas, así que revisé una por una la ruta de origen de todas las dlls en el Editor de tipos de archivos y las reemplazé de acuerdo con sus arquitecturas.

4) Finalmente construyó el proyecto de implementación con las siguientes configuraciones:

Dicha combinación es la única que funcionó.


Uno de los errores más comunes es que olvidamos cambiar el programa de prueba y el programa de envoltura a la plataforma correcta. Vea la imagen de abajo

(en la barra superior muestra que la plataforma es x64, pero debes asegurarte de que realmente exista en la segunda imagen ...)

Asegúrese de tener la configuración correcta en el Administrador de configuración ... si su configuración no coincide con la configuración real de su dll c ++, dará una excepción BadImageFormatException.

Aprendí del error después de buscar mucho ... y finalmente conseguí esto


Propiedades del proyecto -> Generar -> Objetivo de la plataforma -> x86 puede resolver este problema.