すべて、32ビットと64ビットのマネージアセンブリを混在させる
私は32ビットマシンで動作する.NET管理アプリケーションを持っています。 64bitにコンパイルして64bitマシンに移植しても問題ありません。 しかし、私は32ビットのアセンブリであるサードパーティのDLLに依存しています。 64ビットマシンで64ビットと32ビットのアセンブリを混在させて実行できますか?
ありがとうございます!
すべて、32ビットと64ビットのマネージアセンブリを混在させる
私は32ビットマシンで動作する.NET管理アプリケーションを持っています。 64bitにコンパイルして64bitマシンに移植しても問題ありません。 しかし、私は32ビットのアセンブリであるサードパーティのDLLに依存しています。 64ビットマシンで64ビットと32ビットのアセンブリを混在させて実行できますか?
ありがとうございます!
彼らは同じプロセスで実行されるわけではありません場合は、\の代わりに
ビンの
。
OS上のプロセスは、異なる "ビット数"のアセンブリをロードできません。一度選択すると、すべてのアセンブリが適合しなければなりません。通常、32ビットDLLを64ビットプロセスにロードしようとすると、またはその逆の場合にBadImageFormatException
が返されます。
の3つのオプション:
64ビットOSで32ビットで動作することに本質的に間違っていることはありませんが、遅くなると思うという罠に陥ることはありません。
私自身の経験から、いいえ。
私は制御できない32ビットのiSeries COMライブラリーに依存したシステムを開発しました。問題に遭遇し、アプリケーションの32ビットバージョンをコンパイルすることによってそれらを修正しました。
すべてのCPUを対象とするのではなく、Visual Studioをx86にコンパイルするように設定してください。
また、生成されたDLLと実行ファイルは、わずかに異なる場所にあることにも注意してください。
ビン\ X86 \デバッグデバッグ
32ビットを実行するかどうか忘れないでくださいが遅くなることはありませんが、メモリが不足する可能性があります。