3

現在、.netで記述された(C#)ソフトウェアをx64システムにインストールするためのMSIを作成しています。これが必要なのは、いくつかのレジストリエントリを生成し、どのレジストリパスを指定する必要があるかをプログラムで決定したくないためです(WOW6432ノードを回避)。

この間、x64システム(Run-Configuration "x64")用にソフトウェアを明示的にコンパイルする必要があるかどうかを自問します。現在、私は常に「AnyCPU」を使用せずにVisualStudioプラットフォームでソフトウェアをコンパイルしています。私のソースコードでは、x64とx86を区別していません。

CILコードはJITコンパイラーによってコンパイルされるので、実行時に64ビットに明示的にコンパイルされると思いますか、それとも間違っていますか?

Visual Studioでの明示的な「x64」コンパイルとプラットフォームに依存しないコンパイルの違いは何ですか?x64フラグのコンパイルにどのように影響しますか?

4

1 に答える 1

2

プログラム(任意のCPUを使用)が64ビットプラットフォームで起動された場合、64ビットモードで起動します。これは多くの場合非常にうまく機能します-例外は、プログラムが32ビットバージョンしか利用できないネイティブライブラリに依存している場合です。その後、ライブラリへの呼び出しがヒットすると、そのライブラリのロードに失敗します(したがって、問題がすぐに明らかにならない場合があります)。

実行時にフラグを使用して32ビットモードを強制することもできます。

于 2013-02-07T08:13:27.620 に答える