Visual Studio11開発者プレビューをインストールしました。 AnyCPUターゲットを指定してマネージド(C#、VB)アプリケーションをコンパイルすると、プロジェクトのプロパティに「32ビットを優先」という新しいオプションが表示されます。これはクラスライブラリのオプションではなく、トップレベルのアプリのオプションのようです。
このフラグは何を示していますか?
アプリがAnyCpuであることを示している可能性がありますが、32ビットが使用可能な場合は、そのように実行する必要があります。これは理にかなっています-64ビットアプリはより多くのメモリを使用し、メモリスペースを必要としない場合もあります;)
EDIT:「任意のCPU 32ビット優先」でコンパイルされたアプリケーションはx86、x64、およびARMと互換性がありますが、x86はx86、x64、およびARMではありません。詳細については、 this を参照してください。
。NET4.5およびVisualStudio 11の時点でAnyCPUが実際に意味すること に良い記事があります。
あなたの質問に対する簡単な答えは、「AnyCPUのそのフレーバーを使用する場合、セマンティクスは次のとおりです。
プロセスが32ビットWindowsシステムで実行されている場合、プロセスは32ビットプロセスとして実行されます。 ILはx86マシンコードにコンパイルされます。プロセスが64ビットのWindowsシステムで実行されている場合、32ビットのプロセスとして実行されます。 ILはx86マシンコードにコンパイルされます。プロセスがARM Windowsシステムで実行される場合、32ビットプロセスとして実行されます。ILはARMマシンコードにコンパイルされます。違いは、 「任意のCPU32ビット優先」と「x86」の間はこれだけです。x86にコンパイルされた.NETアプリケーションはARM Windowsシステムでは実行できませんが、「任意のCPU32- 「ビット優先」アプリケーションは正常に実行されます。」