いくつかのテストを完了するには、32 ビット バージョンの Windows を実行していても、64 ビット バージョンのアセンブリを読み込む必要があります。これは可能ですか?
4 に答える
なぜこれをやりたいのかわかりませんが、できると思います。特に何も指示しない場合、CLR は、使用している CPU に固有のバージョンのアセンブリを読み込みます。それは通常、あなたが望むものです。しかし、アセンブリのニュートラル IL バージョンを読み込む必要がある場合がありました。Load メソッドを使用してバージョンを指定しました。私はそれを試していません (そして、他の人は実行可能なアセンブリでは機能しないことを示唆しています) が、64 ビット バージョンをロードするように指定するために同じことを行うことができると思います。(AMD64 または IA64 バージョンが必要かどうかを指定する必要があります。)
C# 経由の CLR から (Jeff Richter):
「アセンブリ ファイルにタイプ セーフなマネージ コードのみが含まれている場合は、32 ビット バージョンと 64 ビット バージョンの Windows の両方で動作するコードを記述しています。どちらのバージョンの Windows でもコードを実行するために、ソース コードを変更する必要はありません。
実際、コンパイラによって生成された結果の EXE/DLL ファイルは、32 ビット Windows だけでなく、64 ビット Windows の x64 および IA64 バージョンでも実行されます。つまり、1 つのファイルは、.NET Framework のバージョンがインストールされている任意のマシンで実行されます。」
" C# コンパイラは /platform コマンド ライン スイッチを提供します。このスイッチを使用すると、結果のアセンブリを 32 ビット Windows バージョンのみを実行する x86 マシン、64 ビット Windows のみを実行する x64 マシン、または Intel Itanium マシンを実行するマシンで実行できるかどうかを指定できます。 64 ビット Windows のみ. プラットフォームを指定しない場合、既定値は anycpu であり、結果のアセンブリが任意のバージョンの Windows で実行できることを示します。
32 ビットの Windows は、VM/エミュレーターなしでは 64 ビットの実行可能ファイルを実行できません
32 ビット Windows は、64 ビット Windows で実行するためにコンパイルできます。
いいえ、32 ビット バージョンの Windows を実行しているシステムで、64 ビット用にコンパイルされたアセンブリを実行することはできません。