可能重复:
Visual Studio“任何 CPU”目标
我注意到在 VS 中编译 C# 代码时,通常有用于编译 32/64 位系统的选项,也有用于编译任何 cpu 的选项。
这两个选项有什么区别?选择任何 CPU 是否只编译为中间字节码,而第一个选项编译为机器码(这听起来不太可能)?或者是其他东西?
可能重复:
Visual Studio“任何 CPU”目标
我注意到在 VS 中编译 C# 代码时,通常有用于编译 32/64 位系统的选项,也有用于编译任何 cpu 的选项。
这两个选项有什么区别?选择任何 CPU 是否只编译为中间字节码,而第一个选项编译为机器码(这听起来不太可能)?或者是其他东西?
任何 CPU:作为 32 位进程运行,可以加载任何 CPU和x86BadImageFormatException
程序集,如果它尝试加载x64程序集,将获得。
x86:与任何 CPU相同。
x64:BadImageFormatException
总是。
任何 CPU:作为 64 位进程运行,可以加载任何 CPU和x64BadImageFormatException
程序集,如果它尝试加载x86程序集,将获得。
x86:作为 32 位进程运行,可以加载任何 CPU和x86BadImageFormatException
程序集,如果它尝试加载x64程序集,将获得。
x64:与任何 CPU相同。
正是JIT 编译器根据此标志生成与请求的目标兼容的汇编代码。
x86 - 您的软件将始终在 32 位模式下运行,无论是在 32 位系统还是 64 位系统上。
x64 - 您的软件将始终在 64 位模式下运行,将在 64 位系统上运行,但不会在 32 位系统上运行。
任何 CPU - 您的软件将根据您的操作系统运行。如果您有 32 位操作系统,您的代码将在 32 位模式下运行,如果您有 64 位操作系统,您的代码将在 64 位模式下运行。