2014-07-19 154 views
4

我知道如何从这里更改我的C#项目的Platform目标:http://msdn.microsoft.com/en-us/library/ms185328.aspx但是我的问题是:是否可以同时针对平台x86和x64在Visual Studio 2012,所以我会在我的Debug目录两个文件夹是这样的:在Visual Studio 2012中同时运行平台目标x86和x64

斌\调试\ X86(X86的dll & EXE)

斌\调试\ 64(64位的DLL & EXE)

所以我总是在我的项目的每个版本都有两个平台组件可用。使用 任何CPU:

EDIT当使用“任何CPU”平台构建我的应用程序和在64位操作系统上运行它,该方法具有在任务管理器延伸部32 *,这意味着它是一个32位汇编不是64位

+1

你在用什么或者你打算如何触发构建? –

+0

为什么你不想使用“任何CPU”? – Yozer

+0

我正在使用visual studio 2012,并使用BUILD菜​​单或使用解决方案资源管理器触发构建 –

回答

7

我尝试使用“任何CPU”打造我的应用程序,当我在x64 Windows上运行它,我发现,在任务管理器中的进程有延长32 *

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

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

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

请注意,您必须对此进行测试,涉及各种细节,与文件系统和注册表视图有关,这些视图根据位数而不同。不得不测试这两种风格是.NET项目默认为32位模式的原因之一。

相关问题