¿Cuál es el propósito de la configuración “Preferir 32 bits” en Visual Studio 2012 y cómo funciona realmente?

Ingrese la descripción de la imagen aquí

No me queda claro cómo el comstackdor sabrá automáticamente comstackr para 64 bits cuando lo necesite. ¿Cómo sabe cuándo puede apuntar con confianza a 32 bits?

Tengo curiosidad sobre cómo el comstackdor sabe a qué architecture apuntar al comstackr. ¿Analiza el código y toma una decisión basada en lo que encuentra?

Es tan extraño que nadie enlace a la entrada del blog Lo que AnyCPU significa realmente a partir de .NET 4.5 y Visual Studio 11 :

En .NET 4.5 y Visual Studio 11, el queso se ha movido. El valor predeterminado para la mayoría de los proyectos .NET es nuevamente AnyCPU, pero ahora hay más de un significado para AnyCPU. Hay un subtipo adicional de AnyCPU, “Cualquier CPU de 32 bits preferida”, que es el nuevo valor predeterminado (en general, ahora hay cinco opciones para el / comstackdor del comstackdor C #: x86, Itanium, x64, anycpu y anycpu32bitpreferred ) Cuando se utiliza el sabor “Preferir 32 bits” de AnyCPU, la semántica es la siguiente:

  • Si el proceso se ejecuta en un sistema Windows de 32 bits, se ejecuta como un proceso de 32 bits. IL está comstackdo con código de máquina x86.
  • Si el proceso se ejecuta en un sistema Windows de 64 bits, se ejecuta como un proceso de 32 bits. IL está comstackdo con código de máquina x86.
  • Si el proceso se ejecuta en un sistema ARM de Windows, se ejecuta como un proceso de 32 bits. IL está comstackdo en código de máquina ARM.

La diferencia, entonces, entre “Cualquier CPU de 32 bits preferida” y “x86” es solo esto: una aplicación .NET comstackda a x86 no se ejecutará en un sistema ARM de Windows, sino una aplicación “Cualquier CPU de 32 bits preferida” se ejecutará con éxito.

El motivo es: en caso de que no desee utilizar más memoria con aplicaciones de 64 bits. Lo que significa que si su aplicación es AnyCPU , desea ejecutarla como 32 bits.

Para agregar más, la configuración en Visual Studio se dirige a la CLR particular:

Visual Studio instala la versión de 32 bits del CLR en una computadora x86, y tanto la versión de 32 bits como la versión apropiada de 64 bits del CLR en una computadora Windows de 64 bits. (Debido a que Visual Studio es una aplicación de 32 bits, cuando se instala en un sistema de 64 bits, se ejecuta en WOW64).

Consulte el artículo Aplicaciones de 64 bits ( MSDN ).