La versión anterior de Visual Studio usaba esto por defecto para "Cualquier CPU", lo que significa que en una máquina x86 siempre terminarías usando x86, mientras que en una máquina x64 terminarías ejecutando x64 o x86 dependiendo sobre si el proceso en el que se está cargando el ensamblaje es de 32 bits o de 64 bits.
El problema es que cuando se inicia un nuevo proceso de un exe .Net construido con la opción "Cualquier CPU" va a terminar como un proceso de 64 bits en lugar de como un proceso de 32 bits que puede causar problemas por 2 razones:
- Cualquier módulo nativo compilado para x86 (es decir, la mayoría de ellos) ya no se cargará en su proceso (también los errores que obtuvo como resultado de esto eran a veces crípticos si no sabía que debía atender este problema).)
- Además, a menos que su aplicación utilice más de 4 GB de espacio de direcciones (es decir, memoria: tenga en cuenta que el sistema operativo ya no reserva los primeros 1-2 GB de espacio de direcciones para procesos de 32 bits en un sistema operativo de 64 bits). tiene un código peor que 32 bit debido al aumento en el tamaño del puntero.
Como tan pocas aplicaciones utilizan realmente suficiente espacio de direcciones (es decir, memoria) para que valga la pena la molestia, el valor predeterminado se cambió a 86 con el fin de evitar estos problemas.
No sé si se trata de optimizaciones, pero si hace referencia a una biblioteca compilada para x86, también necesitará construir un proyecto para x86 o no podrá cargar el ensamblado en tiempo de ejecución. – R0MANARMY
El cambio se realizó porque rara vez es beneficioso ejecutarlo como un proceso de 64 bits, y con frecuencia no es óptimo (se usa más memoria, no se pueden cargar las bibliotecas necesarias, etc.). – Gabe
Publica esto en la respuesta de @Kragen, pero probablemente debería haberlo puesto aquí - esta [pregunta] (http://stackoverflow.com/questions/516730/visual-studio-any-cpu-target) es bastante útil para comprender el ' Cualquier opción de CPU. –