我们的应用程序是C#.Net 4,并调用非托管32位DLL。它运行良好并运行许多机器(主要是64位Windows 7)。但是,我最近遇到了一个特定的用户,一旦调用非托管DLL,程序就会使用BadImageFormatException陷阱。
BadImageFormatException:尝试加载带有的程序 格式不正确。 (HRESULT异常:0x8007000B)
我做了以下事情:
我快要结束了我的智慧。有什么建议? 是否存在导致此类问题的特定.Net 4更新或修补程序?
谢谢
答案 0 :(得分:0)
问题原来是用户机器上的一些错放/无效的系统文件,可能表现为“应用程序无法正常启动(0xc000007b)。启动某些应用程序时,单击确定关闭应用程序”。
问题是由于各种系统dll的32/64位不匹配造成的 Visual Studio要求。不知何故,它需要的dll被替换 无法加载的64位版本。
从正在运行的计算机上替换下面提到的dll 解决了这个问题:
c:\ Windows \ SysWOW64 \ msvcp100.dll c:\ Windows \ SysWOW64 \ msvcp100d.dll C:\ WINDOWS \ Syswow64资料\ msvcr100.dll C:\ WINDOWS \ Syswow64资料\ msvcr100_clr0400.dll C:\的Windows \ Syswow64资料\ msvcr100d.dll
http://social.msdn.microsoft.com/Forums/en-US/vssetup/thread/96035692-9a50-40d4-a7d3-48bda87d11ec