- 大多數(shù)情況下,如果程序集文件只包含類型安全的托管代碼,則代碼在32位和64位Windows上都能正常工作。
編譯好的托管EXE/DLL文件由主機(jī)上的.NET Framework處理執(zhí)行。 - 少數(shù)情況下,開發(fā)人員可以利用C#編譯器的/platform選項(xiàng)設(shè)置目標(biāo)平臺(tái),該選項(xiàng)默認(rèn)參數(shù)是anycpu,表示生成的程序集可以在32位Windows、64位Windows或者32位Windows RT的ARM機(jī)器上使用;將其設(shè)置為x86或x64可以指定其只能在某(些)類CPU架構(gòu)的機(jī)器上使用。
- 64位Windows版本可以通過WoW64(Windows on Windows64)技術(shù)運(yùn)行32位Windows應(yīng)用程序。
/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 |