sistemas sistema saber que programa procesador pasa operativos operativo mejor instalo entre diferencia cual como .net assemblies 64bit 32bit-64bit anycpu

.net - saber - sistemas operativos de 32 y 64 bits



C#compilando para 32/64 bit, o para cualquier CPU? (2)

Posible duplicado:
Objetivo de Visual Studio "Any CPU"

Me he dado cuenta de que al compilar el código C # en VS, normalmente hay opciones para compilar para sistemas de 32/64 bits, y también hay uno para compilar para cualquier CPU.

¿Cuál es la diferencia entre las dos opciones? ¿La elección de cualquier CPU solo se compila hasta un código de byte intermedio mientras que la primera opción se compila en código de máquina (esto me parece poco probable)? ¿O algo mas?


En una máquina de 32 bits :

  • Cualquier CPU : se ejecuta como un proceso de 32 bits, puede cargar cualquier ensamblado de CPU y x86 , obtendrá BadImageFormatException si intenta cargar un ensamblado x64 .

  • x86 : igual que cualquier CPU .

  • x64 : BadImageFormatException siempre.

En una máquina de 64 bits :

  • Cualquier CPU : se ejecuta como un proceso de 64 bits, puede cargar cualquier ensamblado de CPU y x64 , obtendrá BadImageFormatException si intenta cargar un ensamblaje x86 .

  • x86 : se ejecuta como un proceso de 32 bits, puede cargar cualquier ensamblado de CPU y x86 , obtendrá BadImageFormatException si intenta cargar un ensamblaje x64 .

  • x64 : igual que cualquier CPU .

Es el compilador JIT el que genera un código ensamblador que es compatible con el objetivo solicitado basado en este indicador.


x86: su software siempre se ejecutará en modo de 32 bits, tanto en sistemas de 32 bits como en sistemas de 64 bits.

x64: su software siempre se ejecutará en modo de 64 bits, se ejecutará en un sistema de 64 bits pero no se ejecutará en un sistema de 32 bits.

Cualquier CPU: su software se ejecutará de acuerdo con su sistema operativo. si tiene un sistema operativo de 32 bits, su código se ejecutará en modo de 32 bits; si tiene un sistema operativo de 64 bits, su código se ejecutará en modo de 64 bits.