C#编译为32/64位,或任何CPU?
可能重复:
Visual Studio“任何CPU”目标
我注意到,在VS编译C#代码时,通常有用于编译32/64位系统的选项,还有一个用于编译任何cpu的选项。
这两种选择有什么区别? 选择任何CPU只能编译到一个中间字节代码,而第一个选项编译到机器代码(这听起来不太可能)? 或者是其他东西?
在32位机器上:
任何CPU :作为32位进程运行,可以加载任何CPU和x86程序集,如果它尝试加载x64程序集,将得到BadImageFormatException
。
x86 :与任何CPU相同。
x64 : BadImageFormatException
总是。
在64位机器上:
任何CPU :作为64位进程运行,可以加载任何CPU和x64程序集,如果它尝试加载x86程序集,将得到BadImageFormatException
。
x86 :作为32位进程运行,可以加载任何CPU和x86程序集,如果尝试加载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