2014-07-19 113 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位模式的原因之一。

相關問題