64bit コンピューティングが導入されて以来,開発者たちは 64bit と 32bit という,2つのプラットフォーム間の差異への対処を強いられ続けてきた。Microsoft は Visual Stdio を使用する C# 開発者に対して,AnyCPU コンパイラ設定を提供している。これは共通言語ランタイムが対象とするプラットフォームを指定するための設定だが,今回それが変更され,ARM アーキテクチャがデフォルトでサポートされるようになる。
以下のスクリーンショットはその変更内容を示している。
VS 2010 でのオプションは 次の とおりである。
- x86 (デフォルト)
- Itanium
- x64
- anycpu
Microsoft による今回の変更により,VS11 と .NET 4.5 では以下の オプション が指定できるようになる。
- x86
- Itanium
- x64
- anycpu
- anycpu32bitpreferred (デフォルト)
VS11 で新たにデフォルトとなるのは AnyCPU/32bit である。Microsoft MVP である技術者の Sasha Goldshtein 氏が指摘しているように,これは VS11 のプロジェクトプロパティ画面の表示内容と一致していない (画面では AnyCPU がデフォルトとして表示されて,AnyCPU/32bit は選択できない)。
この件について氏は,
"Any CPU 32-bit preferred" と "x86" との違いは結局ただひとつ,x86 でコンパイルされた .NET アプリケーションは ARM Windows システムでは動作しないが,"Any CPU 32-bit preferred" のアプリケーションは正常に実行できる,という点なのです。
意図しているプラットフォームが動作対象となるように,VS11 に移行する開発者はプロジェクトのプロパティを再確認する必要がある。