错误图像格式异常问题

Sha*_*ank 4 .net badimageformatexception

可能重复:
.Net程序集加载问题期间出现BadImageFormatException

我试图运行一个加载程序集并提取其版本的exe文件.该文件在win xp上工作正常,但在win 7上运行时崩溃会产生以下异常.

Unhandled Exception: System.BadImageFormatException: Could not load file or asse
mbly 'some.dll' or one of its dependencies. An attempt was made to load a program with
 an incorrect format.
File name: 'some.dll'
   at System.Reflection.Assembly._nLoad(AssemblyName fileName, String codeBase,
Evidence assemblySecurity, Assembly locationHint, StackCrawlMark& stackMark, Boo
lean throwOnFileNotFound, Boolean forIntrospection)
   at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, Evidence
 assemblySecurity, StackCrawlMark& stackMark, Boolean forIntrospection)
   at System.Reflection.Assembly.LoadFrom(String assemblyFile)
   at NxTools.InstallTools.Utils.MIPSettings.MIPEnvironmentSettings.Main(String[
] args)

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\M
icrosoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure lo
gging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fus
ion!EnableLog].
Run Code Online (Sandbox Code Playgroud)

有人遇到过这个问题吗?这个问题的可能解决方案是什么?

Sam*_*der 15

这可能有几个原因,最有可能的是您尝试在64位计算机上加载32位受管理的dll,反之亦然.

它还可能意味着您动态加载的DLL不是本机DLL,或者dll文件已损坏.

这可能意味着你有一个使用更高版本的.Net框架的dll,而不是使用它的其他一些dll,如果你重建了一个不同版本的特定组件.

这个问题覆盖相同的地面一样,这一个也暗示的方式来迫使你的64位应用在32位模式运行,因此它可以加载32位的依赖性.