質問: visual studioの "any cpu"ターゲットとはどういう意味ですか? 私は、visual studio 2008の.netプラットフォームのビルドオプションに関していくつか混乱しています。「any cpu」コンパイルターゲットとは何ですか。また、どのようなファイルが生成されますか?私はこの "any cpu"ビルドの出力実行ファイルを調べて、それらがx86実行ファイルであることを発見しました(それが来るのを見ないでしょう!)。それで、x86への実行可能ファイルのターゲティングと "any cpu"の間に違いはありますか?私が気づいたもう一つのことは、マネージc++プロジェクトはオプションとしてこのプラットフォームを持っていないということです。何故ですか?これは、 "any cpu"実行可能ファイルが普通の32ビットの実行可能ファイルであるという私の疑いが正しいということですか?
回答: 大事なことはほとんど言ってあると思いますが、1つ追加することを考えました。any cpuとしてコンパイルし、x64プラットフォームで実行すると、勝ちますアプリはwow64で起動されていないため、32ビットdllをロードできませんが、それらのdllはそこで実行する必要があります。 あなたがx86としてコンパイルするならば、x64システムはwow64であなたのアプリを実行するでしょう、そしてあなたは32ビットdllをロードすることができるでしょう。 したがって、依存関係がどちらの環境でも実行できる場合は "any cpu"を選択し、32ビットの依存関係がある場合はx86を選択してください。 microsoftのこの記事では、これについて少し説明しています。 / clrimagetype(clrイメージの種類を指定) ちなみに、 この他のmicrosoftのドキュメント は、x86がより移植性の高い選択肢であることに同意しています。 x86を選択することは、ほぼすべてのデバイス上で実行されるため、一般的にアプリパッケージにとって最も安全な設定です。 xboxや一部のiot coreデバイスなど、一部のデバイスではx86構成のアプリパッケージが動作しません。ただし、pcの場合、x86パッケージが最も安全な選択であり、デバイスの展開に最も適しています。 windows 10デバイスの大部分は、x86バージョンのwindowsを実行し続けています。