VisualStudioの対象のCPUとは何か?

https://blogs.msdn.microsoft.com/nakama/2008/11/05/part-2-net-framework-2-0-64/
・VisualStudioが出力するEXEは.NET FrameworkCLRが実コードに変換する中間コード(MSIL)である
・CPUが解釈できる実コードには32bit/64bitの差があるが、中間コードには32bit/64bitの差が無い(変換時に32bitの実コードにも64bitの実コードにも変換できる。これが AnyCPU の正体。)
・しかし例えばPGから利用するDLLに32bit実コードのものしか存在しない場合、PGの中間コードは必ず32bitの実コードに変換されて実行されて欲しい。
・上記ケースのために存在する「必ず32bit/64bitの実コードに変換して実行しなさい」というヘッダ情報(PE(Portable Executable)ヘッダ)が、対象のCPUの正体である。


PE ヘッダの確認を行う場合には、Windows SDK に含まれる CorFlags.exe ツールを利用します。これを利用すると、
Any CPU, x86, x64/Itanuim などのいずれのヘッダを持つのかを比較的簡単に見分けることができます。
"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\CorFlags.exe"



フラグを書き換えて、対象のCPUを64bitから32bitに変更することもできる。
https://needtec.exblog.jp/21561024/

CorFlags /32BIT+ TestR.exe