質問

テストを完了するには、32 ビット バージョンの Windows を実行している場合でも、64 ビット バージョンのアセンブリを読み込む必要があります。これは可能でしょうか?

役に立ちましたか?

解決

なぜこれをしたいのか分かりませんが、できると思います。それ以外のことを何も指示しない場合、CLR は使用している CPU に固有のバージョンのアセンブリをロードします。それは通常、あなたが望んでいることです。しかし、アセンブリのニュートラル IL バージョンを読み込む必要がある場合がありました。私が使用したのは、 ロード方法 バージョンを指定します。私は試していませんが(実行可能アセンブリでは機能しないことを示唆している人もいます)、同じことをして64ビットバージョンをロードするように指定できると思います。(AMD64 または IA64 バージョンが必要かどうかを指定する必要があります。)

他のヒント

C# 経由の CLR から (Jeff Richter):

「アセンブリファイルにタイプセーフ管理コードのみが含まれている場合、32ビットと64ビットの両方のバージョンの両方のWindowsで動作するコードを作成しています。コードがいずれかのバージョンのWindowsで実行されるには、ソースコードの変更は必要ありません。

実際、コンパイラによって生成された結果のEXE/DLLファイルは、32ビットウィンドウと64ビットウィンドウのX64およびIA64バージョンで実行されます。言い換えれば、1つのファイルは、.NETフレームワークのバージョンがインストールされている任意のマシンで実行されます。」

" C# コンパイラには、/platform コマンド ライン スイッチが用意されています。このスイッチを使用すると、結果のアセンブリが32ビットウィンドウバージョンのみを実行するx86マシンで実行できるか、64ビットウィンドウのみを実行するx64マシン、または64ビットウィンドウのみを実行するIntel Itaniumマシンを指定できます。プラットフォームを指定しない場合、デフォルトはanyCPUです。これは、結果のアセンブリがWindowsの任意のバージョンで実行できることを示しています。

32 ビット Windows は、VM/エミュレータなしでは 64 ビット実行可能ファイルを実行できません

32 ビット Windows は 64 ビット Windows 上で実行するためにコンパイルできます

いいえ、64 ビット用にコンパイルされたアセンブリを 32 ビット バージョンの Windows を実行しているシステム上で実行することはできません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top