C#编译为32/64位,或任何CPU?

可能重复:
Visual Studio“任何CPU”目标

我注意到,在VS编译C#代码时,通常有用于编译32/64位系统的选项,还有一个用于编译任何cpu的选项。

这两种选择有什么区别? 选择任何CPU只能编译到一个中间字节代码,而第一个选项编译到机器代码(这听起来不太可能)? 或者是其他东西?


32位机器上:

  • 任何CPU :作为32位进程运行,可以加载任何CPUx86程序集,如果它尝试加载x64程序集,将得到BadImageFormatException

  • x86 :与任何CPU相同。

  • x64BadImageFormatException总是。

  • 64位机器上:

  • 任何CPU :作为64位进程运行,可以加载任何CPUx64程序集,如果它尝试加载x86程序集,将得到BadImageFormatException

  • x86 :作为32位进程运行,可以加载任何CPUx86程序集,如果尝试加载x64程序集,则会得到BadImageFormatException

  • x64 :与任何CPU相同。

  • 它是JIT编译器根据此标志生成与请求的目标兼容的汇编代码。


    x86 - 您的软件将始终以32位模式运行,无论是在32位系统还是64位系统上。

    x64 - 您的软件将始终以64位模式运行,将在64位系统上运行,但不会在32位系统上运行。

    任何CPU - 您的软件将根据您的操作系统运行。 如果你有一个32位操作系统,你的代码将以32位模式运行,如果你有一个64位操作系统,你的代码将以64位模式运行。

    链接地址: http://www.djcxy.com/p/75127.html

    上一篇: C# compiling for 32/64 bit, or for any cpu?

    下一篇: Can't change target platform to "any CPU"