即使平台相同,仍然会出现“尝试加载不正确格式的程序”的错误。

20 浏览
0 Comments

即使平台相同,仍然会出现“尝试加载不正确格式的程序”的错误。

我正在64位系统上调用32位未托管DLL中的函数。我得到的结果是:

BadImageFormatException:尝试加载格式不正确的程序。(来自 HRESULT: 0x8007000B的异常)

起初,我将我的项目设置为任何CPU平台,所以我将它们都更改为x86,但这个错误仍然发生。这真的是我知道的唯一的修复方法。

这些DLL不是损坏的或其他什么,因为我可以在其他程序(我没有源代码)中使用它们。我以为可能没有找到一个依赖项,但我检查过了,它们都在那里。另外,在那种情况下,不会抛出DllNotFoundException吗?

我还能做什么?在你说“使用64位未托管DLL”之前,让我指出,这没有。

admin 更改状态以发布 2023年5月21日
0
0 Comments

一些方式下,我的可执行文件在配置管理器中的构建复选框没有被选中,所以它仍然使用旧的Any CPU编译。在我修复了这个问题之后,Visual Studio报告无法调试程序集,但重新启动后问题得到解决。

0
0 Comments

如果你尝试在IIS 7上(以及/或64位操作系统)运行32位应用程序,你会得到同样的错误。所以,在IIS 7上,右键点击应用程序池的应用程序,并转到“高级设置”,将“启用32位应用程序”改为“TRUE”。

重新启动您的网站,它应该可以工作。

enter image description here

0