Cuando creo una nueva aplicación WPF en Visual Studio 2012, la configuración de destino y compilación de la plataforma se establece en x86 de manera predeterminada. ¿Por qué es este el caso? Para una aplicación WPF simple (sin referencias a ensamblajes de modo mixto) ¿existe algún peligro al utilizar AnyCPU para que mi ejecutable WPF esté JIT en el código x64 en mi máquina x64 y en x86 en una máquina x86?¿Por qué la plataforma predeterminada es objetivo para una aplicación WPF en Visual Studio x86 y no en AnyCPU?
Respuesta
¿Por qué es este el caso?
Para la mayoría de las aplicaciones, construir como 32 bits es realmente mejor. 64 bits proporciona pocos beneficios y algunas desventajas significativas en la mayoría de los casos (uso de memoria mucho más alto, administración de dependencias más compleja con múltiples plataformas, peor experiencia de depuración, etc.).
Si, sin embargo, su aplicación necesita para poder usar grandes cantidades de memoria, entonces, por supuesto, 64bit tiene ventajas (y es fácil de conmutar en VS), pero la mayoría de las aplicaciones no se incluyen en este barco.
Es por esto que el nuevo valor predeterminado en VS 2012 es usar AnyCPUPrefer32Bit
en lugar de AnyCPU
para las aplicaciones.
Si elige especificar una CPU, entonces automáticamente limita su .exe a una plataforma u otra.
rara vez hay ninguna razón para hacer esto, a menos que sea absolutamente necesario dependencias de 32 bits:
En otras palabras, no hay " problema de rendimiento. El verdadero problema es la "compatibilidad". Si carga componentes de 32 bits y está en un platerm de 64 bits, debe invocar WOW64. CLRTIMAGETYPE le permite hacer eso.
Según este bug report, se realizó debido a problemas con Editar y Continuar en máquinas x64 con código x64. Al cambiarlo a x86, Editar y Continuar funciona correctamente.
No debe haber peligro al cambiarlo a AnyCPU. Yo siempre hago esto
- 1. ¿Cuál es el propósito de establecer el objetivo de la plataforma para una aplicación de Visual Studio?
- 2. AnyCPU/x86/x64 para la aplicación C# y su dependencia C++/CLI
- 3. ¿Qué significa el objetivo "Cualquier CPU" de Visual Studio?
- 4. ¿Por qué los eventos y comandos en MVVM no están soportados por WPF/Visual Studio?
- 5. Cómo establecer una plataforma de salida del proyecto a x86 en Visual Studio 2010
- 6. Herramientas necesarias para aprender ARM en la plataforma Linux x86
- 7. Visual Studio 2010: ¿Cómo establecer la plataforma de compilación en Activo (x86)?
- 8. cómo saber qué CPU usar en compilación (x86 x64 o AnyCpu)?
- 9. Visual Studio: DLL diferentes para configuraciones
- 10. . Los ensamblados Net2 alojados en la aplicación .Net4 funcionan mejor en x86 que en el modo AnyCpu?
- 11. ¿Por qué Visual Studio no crea una clase pública de forma predeterminada?
- 12. ¿Por qué el programa C++ compilado para la plataforma x64 es más lento que el compilado para x86?
- 13. Rendimiento de una aplicación C# basada en AnyCPU vs plataforma x64 en una máquina de 64 bits
- 14. WiX plataforma x64 objetivo
- 15. ¿Puedo ejecutar Visual Studio 2008 x86 en Windows Vista x64?
- 16. ¿Cómo configurar la fuente predeterminada para una aplicación WPF?
- 17. Visual Studio 2010 transformaciones web.config (objetivo TransformWebConfig)
- 18. ¿Por qué no funciona "$ (SolutionDir)" en visual studio 2012?
- 19. En Visual Studio, ¿cómo crear correctamente una aplicación para máquinas de 64 bits?
- 20. Crear una biblioteca WPF en Visual Studio Express
- 21. Recomendaciones para soluciones de Visual Studio 2010 que contienen proyectos 'Any CPU' y 'x86'
- 22. Depuración aplicación .NET x86 en Windows x64 en VS2008
- 23. No puedo editar y continuar al usar Visual Studio 2010 en una máquina de 64 bits, la aplicación apunta a x86
- 24. WPF sin Visual Studio?
- 25. Visual Studio 2008 C++ ninguna plataforma x64
- 26. Cómo configurar vista XAML predeterminada en Visual Studio 2008
- 27. Cómo configurar la codificación predeterminada en Visual Studio 2010
- 28. ¿Por qué F10 (paso) en Visual Studio no funciona?
- 29. ¿Por qué Visual Studio no quiere que agregue una nueva ventana a mi proyecto de WPF?
- 30. ¿Para qué se utiliza la carpeta App_Data en Visual Studio?
No estoy del todo seguro de cómo responde esto a la pregunta ... – BoltClock
Cuando leí la pregunta, el problema es que VS selecciona la configuración específica de la plataforma de manera predeterminada. –
Además, al elegir x86, no limita su .exe a x86. 64 bits Windows ejecutará ejecutables x86 bajo WOW64 sin problema. La elección de x64 no limita, pero el resto de las opciones no. –