2011-09-22 32 views
23

剛剛安裝了Visual Studio 11開發人員預覽版。在編譯具有指定的AnyCPU目標的託管(C#,VB)應用程序時,我在項目屬性中看到一個名爲「首選32位」的新選項。這似乎不是類庫的選項,只是頂級應用程序。對於Visual Studio 11託管應用程序(C#,VB),「首選32位」編譯器標誌是什麼意思?

此標誌表示什麼?

+1

你應該參考這篇文章http://blogs.microsoft.co.il/blogs/sasha/archive/2012/04/04/what-anycpu-really-means-as-of-net-4- 5-and-visual-studio-11.aspx –

回答

12

它可能表示應用程序是AnyCpu,但是當32位可用時,它就像這樣運行。這是有道理的 - 64個應用程序使用更多的內存,並且有時你不需要的內存空間;)

+1

64位應用程序也無法通過編輯進行調試並繼續。設置「首選32位」希望啓用的x64用戶再次調試運行在AnyCPU上的應用程序,而無需將目標設置爲x86/32位編譯。 – CodingBarfield

+12

這不是正確的答案。請參閱http://blogs.microsoft.co.il/blogs/sasha/archive/2012/04/04/what-anycpu-really-means-as-of-net-4-5-and-visual-studio -11.aspx –

+6

那麼爲什麼不把它作爲答案;-) –

2

編輯: 應用程序使用「首選任何CPU的32位」是x86,x64和ARM兼容編譯,而x86僅與x86,x64兼容,而不兼容ARM。詳情請參閱this

+2

這不是文章所說的。再次閱讀:「編譯爲x86的.NET應用程序將無法在ARM Windows系統上運行,但」任何CPU 32位首選「應用程序將成功運行。」 –

+0

感謝您的反饋,答案已更改。 – qub1n

-1

我覺得上面的評論是錯誤的,指的是鏈接:

」 ......編譯成x86的.NET應用程序將無法在ARM的Windows系統上運行,而是一個「任何CPU 32位首選「應用程序將成功運行。」

+1

評論你所提到的答案後,我注意到你的答案。您應該使用評論功能迴應誤導性聲明 - 但我已經這樣做了。你仍然可以刪除你的答案。 –

1

What AnyCPU Really Means As Of .NET 4.5 and Visual Studio 11有一篇很好的文章。

簡短的回答你的問題是「在使用AnyCPU的那個味道,語義如下:

如果進程的32位Windows系統上運行,它會作爲一個32位進程。 IL編譯爲x86機器代碼 如果進程在64位Windows系統上運行,它將作爲32位進程運行IL編譯爲x86機器代碼 如果進程在ARM Windows系統上運行,運行爲32位進程,IL被編譯爲ARM機器代碼 「任何CPU 32位首選」和「x86」之間的區別僅在於:編譯爲x86的.NET應用程序將無法運行在ARM Windows系統上,但是「任何CPU 32位首選」應用程序w生病成功了。「

相關問題