在Visual Studio 2012中同时选择x86和x64平台目标

5
我知道如何从这里更改C#项目的平台目标:http://msdn.microsoft.com/en-us/library/ms185328.aspx。但我的问题是:是否有可能在Visual Studio 2012中同时针对x86和x64平台进行定位,以便我在我的Debug目录下拥有两个文件夹,如下所示:
Bin\Debug\x86(x86 dlls & exe)
Bin\Debug\x64(x64 dlls & exe)
因此,在每次构建项目时,我都可以使用这两个平台的程序集。
编辑: 使用Any CPU:当我使用“Any CPU”平台构建我的应用程序并在64位操作系统上运行它时,进程在任务管理器中具有32*扩展名,这意味着它是一个32位程序集而不是64位。

1
你使用什么方式来触发编译或者你有什么计划来触发编译? - Keith Payne
为什么你不想使用“Any CPU”? - Yozer
我正在使用 Visual Studio 2012,可以通过“生成”菜单或“解决方案资源管理器”触发构建。 - Mohamed Al-Hosary
@Yozer- 我尝试使用“任何 CPU”构建我的应用程序,当我在 x64 Windows 上运行它时,我发现任务管理器中的进程具有扩展名为 32*,这意味着该程序集是 32 位程序集而不是 46 位。 - Mohamed Al-Hosary
为什么需要同时构建两个版本?当你在IDE中进行调试时,你只能测试一个版本。当需要构建所有配置时,你可以轻松设置批处理文件或PowerShell脚本来完成构建。 - John Koerner
1个回答

10
我尝试使用“任何CPU”构建我的应用程序,但在x64 Windows上运行时,任务管理器中的进程具有32 *扩展名。您被解决方案配置名称所困惑。对于VS2012及以上版本中的托管项目,默认为“AnyCPU”。这是一个相当准确的名称,由于Jitter的存在,.NET项目可以在任何CPU上运行。然而,这些配置名称仅适用于本地项目(C和C ++),它们选择用于构建项目的编译器类型。由于直接生成机器代码,需要不同的编译器来生成x64代码。您可以在运行时选择要使用的Jitter版本,现代版本的Windows能够运行32位和64位进程。但那是完全不同的设置,与配置名称无关。右键单击EXE项目,属性,生成选项卡。确保平台目标设置为AnyCPU,如果看到则取消选中“首选32位”复选框。这将删除Jitter强制选择,您的进程现在将成为64位进程,并在64位版本的Windows上运行。并且仍将在32位版本上运行,感谢Jitter。对此进行测试时需注意,涉及到各种微妙的细节,涉及到文件系统和注册表视图的差异取决于比特数。必须测试两种版本的原因之一是.NET项目默认为32位模式。

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