サードパーティライブラリを扱う際に、CPUモードでプロジェクトを構築するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/4857221

質問

32ビットまたは64ビット.dllsのいずれかでダウンロードできるサードパーティライブラリがあります。私の開発マシンは32ビットのWindows 7を実行しています。ターゲット生産マシンは64ビットWindows Server 2008 R2を実行しています。私のプロジェクトソリューションは現在、あらゆるCPUモードで構築されています。

プロジェクトを複製する必要なく、このケースを処理するエレガントな方法はありますか(MyProject32とMyProject64は、それぞれがサードパーティライブラリの適切な32または64ビットバージョンを参照しています)?

私が考えた最初の解決策は、 AppDomain.AssemblyResolve イベント, 、そして、私の第三者図書館を独自の32ビットと64ビットのサブフォルダーに持っています。次に、現在のモードに基づいて適切なアセンブリを動的にロードします。

私が考えた2番目の解決策は、32ビットモードのみで構築することであり、32ビットのサードパーティライブラリのみを使用することです(これは私にとって警官のようです...)。

どちらの解決策も私を特にきれいに感じさせません...どんなアドバイスでも役立つでしょう!

役に立ちましたか?

解決

これが社内プログラムである場合、問題はありません。開発マシンに32ビットDLLを取り付け、64ビットDLLを生産マシンに取り付けます。間違ったマシンに間違ったDLLをインストールしないでください。社内アプリでは、マシン上の間違ったDLLの問題は、DLLをまったく持っていないこととほぼ同等です。

これが配布するアプリケーションである場合、または適切な場所に正しいDLLを持っているマシンに依存できない場合、最初のソリューションは合理的に聞こえます。ロードします。または、ロードできない場合は、問題が何であるかを示すエラーメッセージを表示します。

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