BadImageFormatException 未处理
Posted
技术标签:
【中文标题】BadImageFormatException 未处理【英文标题】:BadImageFormatException was unhandled 【发布时间】:2013-12-02 20:46:06 【问题描述】:在 Windows 8 64 位上编译或尝试运行我的应用程序时抛出“BadImageFormatException”。我搜索了互联网,很多人都有相同的错误信息。但是,没有一个解决方案可以解决我的问题或情况。我正在使用 Visual Studio 2012 Express。
错误信息
错误 38 无法加载文件或程序集“file:///C:/Projects/Windows Projects/Weld/Components/FileAttachments/FileAttachments/FileAttachments/bin/x86/Debug/FileAttaching.dll”或其依赖项之一.试图加载格式不正确的程序。
我确实有一些 C++ dll,而且大多数 dll 都在 C# 中。有些 dll 是在 32 位机器上编译的,我使用的是 64 位机器。
【问题讨论】:
当 dll 编译为 32 位和 64 位(混合)时,我偶然发现了这一点。所有的 dll 编译的都一样吗? @gleng 我在 64 位机器上确实有一些 32 位和一些 64 位 dll。谢谢将更新问题。 【参考方案1】:此错误BadImageFormatException
始终意味着您尝试将 32 位 DLL 加载到 64 位应用程序中,或者您尝试将 64 位 DLL 加载到 32 位应用程序中。
有时当您为 AnyCPU 编译时也会发生这种情况,因此如果您的 DLL 以特定平台为目标,您可能希望您的项目以该特定平台为目标。
在您当前的情况下,FileAttaching.dll
可能是 64 位 DLL,因此我建议您检查您是否在此项目上输出 32 位 DLL 或使用正确的 32 位版本。
【讨论】:
以上是关于BadImageFormatException 未处理的主要内容,如果未能解决你的问题,请参考以下文章
pinvoke c 函数 - System.BadImageFormatException
WCF 服务 BadImageFormatException
System.BadImageFormatException:如何修复 .NET 版本不匹配?