我正在 Win7 x64 机器上开发应用程序。
有一些代码可以调用外部 .dll 文件。.dll 是为 32 位机器构建的。我遇到的问题是在Debug
配置中的调试器中运行应用程序时,它工作正常。一旦我切换到Release
,任何进入进行 .dll 调用的方法的条目都会失败
An unhandled exception of type 'System.BadImageFormatException' occurred in MyCool.exe
Additional information: is not a valid Win32 application. (Exception from HRESULT: 0x800700C1)
两者Release
和Debug
配置都是相同的,并且正在为 x86 构建应用程序。此问题仅发生在 Windows 7 机器上。我们的客户运行 XP 没有问题。诚然,我们没有运行 XP x64 的客户,因此我无法验证这一点。
这是我的解决方案配置的图像:
我已将Platform:
选项更改为所有可能的组合,但它仍然无法正常工作。配置中是否有一些隐藏的东西Debug
?
编辑:我想通了,但我真的不明白这个问题。
Build
在项目属性中的每个项目选项卡( Compile
VB 项目的选项卡)中,我必须设置Target CPU
为 x86 而不是 AnyCPU。
也许这是另一个问题,但是:为什么?在每个项目的基础上将整个解决方案的平台设置为 x86 和将目标 CPU 设置为 x86 之间有什么区别。另外,在上图中:那么该Platform
字段的目的是什么?