平台在Visual Studio 2012中同时定位x86和x64

时间:2014-07-19 12:36:40

标签: c# visual-studio visual-studio-2012

我知道如何从这里更改我的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)

所以我总是在项目的每个构建中都有两个平台程序集。

修改 使用任何CPU:使用"任何CPU"构建我的应用程序时平台并在64位操作系统上运行,该进程在任务管理器中具有扩展32 *,这意味着它是32位程序集而不是64位

1 个答案:

答案 0 :(得分:9)

  

我尝试使用"任何CPU"来构建我的应用程序。当我在x64窗口上运行它时,我发现任务管理器中的进程具有扩展名32 *

您正被解决方案配置名称所困扰。默认为" AnyCPU"对于VS2012及以上的托管项目。这是一个相当准确的名称,由于抖动,.NET项目可以在任何CPU上运行。但是,这些配置名称仅与本机项目(C和C ++)相关,它们选择用于构建项目的编译器类型。由于它们直接构建到机器代码,因此需要使用不同的编译器来生成x64代码。

可以选择在运行时使用的抖动类型,现代版本的Windows能够运行32位和64位进程。但这是一个完全不同的设置,它与配置名称没有任何关系。

右键单击EXE项目,“属性”,“构建”选项卡。确保平台目标设置为AnyCPU,取消选中"首选32位"复选框,如果你看到它。这消除了抖动选择强制,您的进程现在将是64位版本的Windows上的64位进程。由于抖动,仍然可以在32位版本上运行。对Release版本配置重复此设置更改。

请注意,您必须对此进行测试,涉及到各种细微之处,与文件系统和注册表视图相关,具体取决于位数。必须测试两种风格是.NET项目默认为32位模式的原因之一。