解决 C#在 x64 平台调用 dll 出现 BadImageFormatException

发布于 2013-07-09  466 次阅读


解决C#在x64平台调用dll出现BadImageFormatException

受不了了, 今天玩调用 dll,死活出不来,一直显示 BadImageFormatException,点击 VS 里面的帮助,一直忽视了第一条。。。其实解决很简单。。。

如果您的应用程序使用了 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 方法进行加载时会引发此异常。


寻找属于自己的1%