当我在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确实有限制,但所有其他选项都不会。 –