BadImageFormatException C#

48
我正在使用 Visual C# Studio 10.0 和 .NET Framework 4.0,尝试加载 SoundTouchSharp 库并在我的应用程序中创建该库的实例 (对象)。然而,在键入文件路径后,我收到了此错误消息:

未处理的 BadImageFormatException -- 尝试加载具有错误格式的程序。(来自 HRESULT 的异常:0x8007000B)

我该如何解决这个问题?我几乎可以确定我是使用 VS 终端创建了 .dll,并且它应该与.NET框架版本相同。如果需要,我还可以提供更多代码。

谢谢!


https://dev59.com/kGgu5IYBdhLWcg3wYGC3 - Gopesh Sharma
请注意,使用的“WebView2Loader.dll”版本非常关键。当我尝试在MMC Snap-Ins中使用类型为“HTMLView”或“FormView”的WebView2组件时,我几乎遇到了与“Microsoft.WebView2.FixedVersionRuntime.101.0.1210.39.x64”相同的问题。 - amirfg
我只是复制了上述的dll文件(版本1.0.1248.0,大小=157640字节)到一个适当的路径,该路径对项目可访问(您可以先将其放在项目输出文件旁边进行测试),然后WebView2浏览器开始按预期工作。微软的错误消息有时(至少在我的情况下)有点误导,并没有传达足够和到位的信息。 - amirfg
我收到了“BadImageFormatException”错误,通常发生在混合平台目标(例如,在针对x86或反之亦然的应用程序中使用在X64中编译的dll文件)或混合本机代码和.NET时,但这并不是我的问题所在。我希望这能帮助那些可能遇到类似问题的人。 - amirfg
1个回答

88

确保没有32位/64位冲突。

参考此问题:

《BadImageFormatException》故障排除

如果您正在运行64位操作系统,则可能会将Assembly RevitAPI编译为32位,而您的进程为64位或“任意CPU”。

或者,RevitAPI编译为64位,而您的进程编译为32位或“任意CPU”,并在32位操作系统上运行。


2
太棒了!尝试了几次,但最终成功启用了配置管理器,并将目标平台(发布)更改为任意 CPU。感谢你的帮助! - m00nbeam360
在新的解决方案中遇到了这个问题,尝试了“任何 CPU”但仍然没有成功。还有其他的提示吗? - m00nbeam360
3
我需要逐个检查实际项目,确保它们都设置为任何CPU。 - Fatlad
我曾经遇到过类似的错误。我通过将ucrtbase(d).dll和vcruntime140(d).dll添加到可执行文件目录中来解决它。您可以在此处找到更多信息:http://blogs.msdn.com/b/vcblog/archive/2015/03/03/introducing-the-universal-crt.aspx - Peter Ittner

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