在Windows 7中以32位运行应用程序

时间:2011-08-31 20:12:44

标签: visual-studio-2010 windows-7 64-bit x86

所以我们有一个用于编译为“任何CPU”的应用程序。它将在Windows 7计算机上以64位模式运行,但在尝试调用以32位模式运行的互操作时会出错。

我经历了将编译目标更改为目标x86的项目,编译并在本地运行,并且运行正常。

但是,当提交此更改时,它仍然在生产中的Windows 7计算机中以64位运行。

当我进行更改时,我刚刚在VS2010中打开配置管理器,将其更改为x86,保存并为解决方案中的每个项目提交了更改。

如何让它以32位模式运行?我需要改变别的吗?

2 个答案:

答案 0 :(得分:5)

您需要SDK中的corflags工具

corflags MyApp.exe /32bit+

将更改exe以32位进程运行。

相反

corflags MyApp.exe /32bit-

将exe更改为AnyCPU

corflags MyApp.exe

会告诉你exe的标题中有什么,所以你可以真正看到它的目标。

答案 1 :(得分:4)

这是VS2010中的一个不幸的陷阱,Configuration Manager中的“Active solution platform”设置与托管C#和VB.NET项目无关。对于C#,您必须使用Project + Properties,Build选项卡,Platform目标设置。只有启动(EXE)项目的设置才重要。