visual studio manager generar entre ejecutable diferencia debug crear compilar como clean c# vb.net compiler-flags visual-studio-2012

manager - ¿Qué significa la bandera del compilador "Preferir 32 bits" para las aplicaciones administradas de Visual Studio 11(C#, VB)?



generar ejecutable visual studio 2010 c# (3)

Es probable que indique que la aplicación es AnyCpu, pero cuando hay 32 bits disponibles debe ejecutar shouold como tal. Esto tiene sentido: las aplicaciones de 64 bits usan más memoria y, a veces, simplemente no necesitas el espacio de la memoria;)

Acabo de instalar la vista previa del desarrollador de Visual Studio 11. Veo una nueva opción en las propiedades del proyecto llamada "Preferir 32 bits" al compilar una aplicación administrada (C #, VB) con el objetivo AnyCPU especificado. Esto no parece ser una opción para bibliotecas de clase, solo aplicaciones de nivel superior.

¿Qué indica esta bandera?


Hay un buen artículo en this .

La respuesta breve a su pregunta es "Al usar ese sabor 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á compilado 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á compilado 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á compilado 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 compilada 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 ".


EDITAR: la aplicación compilada con "Cualquier CPU de 32 bits preferida" es compatible con x86, x64 y ARM, mientras que x86 solo es compatible con x86, x64 y no con ARM. Para más detalles, mira this .