重複の可能性:
Visual Studio の「任意の CPU」ターゲット
VS で C# コードをコンパイルする場合、通常、32/64 ビット システム用にコンパイルするためのオプションがあり、任意の CPU 用にコンパイルするためのオプションもあることに気付きました。
2 つのオプションの違いは何ですか? 最初のオプションがマシンコードにコンパイルされるのに対し、CPUを選択すると中間バイトコードにコンパイルされるだけですか(これは私にはありそうにないように思えます)? または、他の何か?
重複の可能性:
Visual Studio の「任意の CPU」ターゲット
VS で C# コードをコンパイルする場合、通常、32/64 ビット システム用にコンパイルするためのオプションがあり、任意の CPU 用にコンパイルするためのオプションもあることに気付きました。
2 つのオプションの違いは何ですか? 最初のオプションがマシンコードにコンパイルされるのに対し、CPUを選択すると中間バイトコードにコンパイルされるだけですか(これは私にはありそうにないように思えます)? または、他の何か?
Any CPU : 32 ビット プロセスとして実行され、任意の CPUおよびx86アセンブリを読み込むことができ、 x64アセンブリBadImageFormatExceptionを読み込もうとすると取得されます。
x86 : Any CPUと同じ。
x64 :BadImageFormatException常に。
Any CPU : 64 ビット プロセスとして実行され、任意の CPUおよびx64アセンブリを読み込むことができ、 x86アセンブリBadImageFormatExceptionを読み込もうとすると取得されます。
x86 : 32 ビット プロセスとして実行され、任意の CPUおよびx86アセンブリを読み込むことができ、 x64アセンブリBadImageFormatExceptionを読み込もうとすると取得されます。
x64 : Any CPUと同じ。
このフラグに基づいて、要求されたターゲットと互換性のあるアセンブリ コードを生成するのはJIT コンパイラです。
x86 - ソフトウェアは、32 ビット システムと 64 ビット システムの両方で、常に 32 ビット モードで実行されます。
x64 - ソフトウェアは常に 64 ビット モードで実行され、64 ビット システムでは実行されますが、32 ビット システムでは実行されません。
任意の CPU - ソフトウェアは OS に従って実行されます。32 ビット OS を使用している場合、コードは 32 ビット モードで実行され、64 ビット OS を使用している場合、コードは 64 ビット モードで実行されます。