- 大多数情况下,如果程序集文件只包含类型安全的托管代码,则代码在32位和64位Windows上都能正常工作。
编译好的托管EXE/DLL文件由主机上的.NET Framework处理执行。 - 少数情况下,开发人员可以利用C#编译器的/platform选项设置目标平台,该选项默认参数是anycpu,表示生成的程序集可以在32位Windows、64位Windows或者32位Windows RT的ARM机器上使用;将其设置为x86或x64可以指定其只能在某(些)类CPU架构的机器上使用。
- 64位Windows版本可以通过WoW64(Windows on Windows64)技术运行32位Windows应用程序。
/platform | 生成的托管模块 | x86 Windows | x64 Windows | ARM Windows RT |
---|---|---|---|---|
anycpu | PE32/any | as 32bit | as 64bit | as 32bit |
anycpu32bitpreferred | PE32/any | as 32bit | as Wow64 | as 32bit |
x86 | PE32/x86 | as 32bit | as WoW64 | can't work |
x64 | PE32+/x64 | can't work | as 64bit | can't work |
ARM | PE32/ARM | can't work | can't work | as 32bit |