當我在Visual Studio 2012中創建新的WPF應用程序時,平臺目標和構建配置默認設置爲x86。爲什麼會這樣?對於普通的WPF應用程序(沒有任何對混合模式程序集的引用),是否存在使用AnyCPU的危險,因此我的WPF可執行文件將被xit機器上的x64代碼和x86機器上的x86機器人?爲什麼Visual Studio x86中的WPF應用程序的默認平臺目標不是AnyCPU?
7
A
回答
5
爲什麼會出現這種情況?
對於大多數應用程序,構建爲32位實際上更好。 64位提供了很多好處,並且在大多數情況下存在一些明顯的缺點(更高的內存使用率,更復雜的多平臺依賴管理,更糟糕的調試體驗等)。但是,如果你的應用需要能夠使用大量的內存,那麼當然64位具有優勢(並且很容易在VS中切換),但是大多數應用不屬於這種情況。
這就是爲什麼VS 2012中的新默認值是使用AnyCPUPrefer32Bit
而不是AnyCPU
的應用程序。
0
如果您選擇指定一個CPU,則會自動將.exe限制到一個平臺或另一個平臺。
裏面很少有任何理由這樣做,除非你絕對有32位依賴性:
換句話說,沒有「性能「問題。真正的問題是「兼容性」。如果您加載任何32位組件,並且您使用的是64位平臺,那麼您必須調用WOW64。 CLRTIMAGETYPE允許你這樣做。
2
根據此bug report,這是因爲在使用x64代碼的x64機器上編輯並繼續時出現問題。通過將其更改爲x86,編輯並繼續正常工作。
切換到AnyCPU應該沒有危險。我總是這樣做。
相關問題
- 1. 爲Visual Studio應用程序設置平臺目標的目的是什麼?
- 2. 爲什麼需要在Visual Studio 2010中修改X86平臺
- 3. 爲什麼visual studio在64位平臺上鍊接MSVCR90.dll(x86)?
- 4. 爲Visual Studio 2015安裝程序項目選擇目標平臺
- 5. 什麼是默認的msbuild平臺
- 6. 在Visual Studio 2012中同時運行平臺目標x86和x64
- 7. 默認平臺工具,在Visual Studio
- 8. 什麼是WPF應用程序的默認字體系列?
- 9. 什麼是Visual Studio中項目的最佳默認位置?
- 10. x86程序想要訪問AnyCpu而不是x86
- 11. 爲什麼我的類默認在Visual Studio中是私有的?
- 12. 平臺目標(x86/x64/AnyCPU)對於純託管.NET dll是否重要?
- 13. 什麼是Visual Studio的Web部署「標記爲目標上的IIS應用程序」是什麼意思?
- 14. 使用Visual Studio的Windows 7中的跨平臺應用程序
- 15. Visual Studio Community - 禁用目標平臺「iOS」
- 16. wpf/Visual Studio默認樣式
- 17. VS 2017 .NET 4.6.2新的ASP.NET Core Web應用程序(.NET Framework)默認爲x86平臺
- 18. Visual Studio MVC平臺 - x86和x64?
- 19. 我應該加載Visual Studio IDE的默認語言是什麼?
- 20. Windows應用程序的默認圖標?
- 21. Rails:爲什麼不使用默認的應用程序佈局?
- 22. 什麼是Visual Studio中的「win32項目」名稱與x86或x64平臺的關係
- 23. 爲我的Visual Studio C++項目配置目標平臺
- 24. Windows應用程序平臺和目標平臺的區別
- 25. gdb爲什麼認爲我的x86-64程序是i386?
- 26. Windows Store應用程序可以編譯爲x86而不是AnyCPU嗎?
- 27. 爲什麼visual studio默認不會使用Resources模板?
- 28. 在C++項目中使用x86平臺
- 29. 爲什麼Visual Studio 2010無法編譯默認的Windows Phone Panorama應用程序(因爲找不到Windows.Phone.Controls)?
- 30. 什麼是默認使用的GUI框架visual studio?
不完全知道這是如何回答這個問題的...... – BoltClock
當我讀到問題時,問題在於VS選擇默認情況下特定於平臺的設置。 –
另外 - 通過選擇x86,您不會將.exe限制爲x86。 64位Windows將在WOW64下運行x86可執行文件而不會出現問題。挑選x64確實有限制,但所有其他選項都不會。 –