VS2012のC#プロジェクトのプラットフォーム構成(Any CPU・32ビットの優先)
VS2012では、C#プロジェクトのプラットフォーム構成のデフォルト設定が、AnyCPU(32ビットの優先)となっています。
VS2012を半年ほど使ってたけど、今まで気づいてなかった。
というか、AnyCPU(32ビットの優先)なんて設定が増えていたとは。。。
ちなみにVS2010の時に、コンソールアプリやWPFなどのexe形式のものはx86、クラスライブラリなどはAnyCPU、というデフォルト設定に変更になっていました。
その辺の背景は↓の記事に詳しく書かれています。
http://d.hatena.ne.jp/siokoshou/20091102/p1
それが、VS2012でAnyCPUになっていて、なぜ!?と思ったのですが、調べてみたらこれは今までのAnyCPUとは異なったもののようです。
参考リンク
http://www.infoq.com/jp/news/2012/04/anycpu_vs11
http://msdn.microsoft.com/ja-jp/library/vstudio/zekwfyz4.aspx
このAnyCPU(32ビットの優先)のときは、32bitOS上では32bitで動作しますが、64bitOS上でも32bitで動作します。
ここまでは「x86」構成と同じ動作。で、「x86」との違いは、「AnyCPU(32ビットの優先)」ではARMのWindows環境でも動作する、という点だそうです。
ということで、この辺の動作をまとめてみました。