BadImageFormatException未经处理

13
在Windows 8 64位系统上编译或运行我的应用程序时,会抛出"BadImageFormatException"。我已经搜索了互联网,很多人都遇到了相同的错误消息。但是,没有任何解决方案可以解决我的问题或情况。我正在使用Visual Studio 2012 Express。
错误消息:
“Error 38 Could not load file or assembly 'file:///C:/Projects/Windows Projects/Weld/Components/FileAttachments/FileAttachments/FileAttachments/bin/x86/Debug/FileAttaching.dll' or one of its dependencies. An attempt was made to load a program with an incorrect format.”
我有一些C++ dll,并且大部分dll都是使用C#编译的。其中一些dll是在32位计算机上编译的,而我正在使用64位计算机。

5
当dll被混合编译为32位和64位时,我发现了这个问题。所有的dll都是相同的编译吗? - gleng
@gleng 我在一台64位的机器上有一些32位和一些64位的dll文件。谢谢,我会更新问题的。 - user2951819
1个回答

19
这个错误 BadImageFormatException,通常意味着您要么尝试在64位应用程序中加载32位DLL,要么尝试在32位应用程序中加载64位DLL。

有时,当您编译为 AnyCPU 时也会发生这种情况,因此如果您的 DLL 目标针对特定平台,则可能希望使项目目标针对该特定平台。

在您当前的场景中,可能 FileAttaching.dll 是一个64位DLL,因此建议检查您是否在此项目中输出32位DLL或使用适当的32位版本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接