【发布时间】:2019-06-12 01:54:33
【问题描述】:
我采用了需要转换为 32 位的代码库(因此我可以使用外部 32 位驱动程序)。我将项目平台目标设置为 x86(下图)。这一切都编译得很好,但由于某种原因在运行时它崩溃并产生以下输出 An unhandled exception of type 'System.BadImageFormatException' occurred in mscorlib.dll 。
我使用了 Dependency Walker,发现其中一些链接的 DLL 是 64 位的,位于 \System32\ 当我想要位于“SysWOW64”中的 32 位 DLL 时。 (输出如下)。您可以从输出中看到目录不正确,并且它们确实是 64 位 DLL。我以为这都是windows管理的?
所以我的问题是,如何强制应用程序转到 \SysWOW64\ 中的 32 位 DLL?这是 Windows 配置设置还是项目设置?或者如何进一步诊断问题?
【问题讨论】:
-
你为什么不为项目配置你的平台?
-
愚蠢的问题,但你最后一次清理解决方案是什么时候?
-
我已经多次清理和重建。 “你为什么不为项目配置你的平台?”我不确定你的意思。为什么我没有在显示“平台”的地方指定确切的 CPU 类型?
-
这是一个什么样的项目? Asp.Net、WinForms、WPF、Service等……
-
请注意,编译后的托管 dll 不包括本地 dll 的路径,而只包括其名称。