您的位置:首页 > 其它

System.BadImageFormatException

2014-02-09 19:51 323 查看
如果 DLL 或可执行程序的文件映像不是有效的托管可执行文件,便会引发 BadImageFormatException 异常。

相关提示

如果您的应用程序使用了 32 位组件,请确保该应用程序始终采用 32 位应用程序的运行方式。
如果应用程序项目的“平台目标”属性设置为
AnyCPU,则编译后的应用程序在 64 位或 32 位模式中均可运行。
如果采用 64 位应用程序运行方式,则实时 (JIT) 编译器便会生成 64 位本机代码。
如果应用程序依赖于某个 32 位托管组件或非托管组件,则在 64 位模式中无法加载该组件。
若要纠正此问题,请将项目的“平台目标”属性设置为
x86,然后重新编译。

确保未使用利用其他 .NET Framework 版本创建的组件。
如果使用 .NET Framework 1.0 或 .NET Framework 1.1 开发的应用程序或组件尝试加载使用 .NET Framework 2.0 SP1 或更高版本开发的程序集,或者使用 .NET Framework 2.0 SP1 或 .NET Framework 3.5 开发的应用程序尝试加载使用 .NET Framework 4 开发的程序集,便会引发此异常。
BadImageFormatException
异常可能会报告作为编译时错误,或在运行时可能会引发该异常。 有关示例,请参见
BadImageFormatException 类。

确保文件映像是有效的托管程序集或模块。
当非托管动态链接库或可执行文件传递给 Load 方法进行加载时会引发此异常。

有关更多信息,Visual Basic 用户可以参见互操作性疑难解答 (Visual Basic)

备注

对 C++ 可执行文件进行反射可能会引发此异常。
这极有可能是因为 C++ 编译器从可执行文件中剥离重定位地址或 .Reloc 节引起的。
若要在 C++ 可执行文件中保留 .relocation 地址,请在链接时指定 /fixed:no

有关此异常的更多原因,请参见 BadImageFormatException 类。

请参见

任务

如何:使用异常助手

参考

BadImageFormatException

转自:http://msdn.microsoft.com/query/dev10.query?appId=Dev10IDEF1&l=ZH-CN&k=k%28EHBADIMAGEFORMAT%29&rd=true
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐