ターゲットのx86インストーラで32ビットのC#アプリケーションがあります。このアプリケーションは、x64マシン上で稼働しても問題なくインストールできます。しかし、ソフトウェアに統合されたベンダーのサードパーティ製ハードウェアは、x64システムにインストールするたびに64ビットDLLを使用する必要があります。どのように32ビットのC#アプリケーションで64ビットDLLを利用できるのですか
は現在、私は私のプロジェクトに32ビットDLLと64ビットDLLの両方を配置しています。しかし、ターゲットのx86インストーラは明らかに64ビットDLLを好まない。
は、それは私が私が64ビットのDLLおよび/または32ビットのDLLを展開し、まだ唯一のインストーラプロジェクトを持つことができるソリューションを作成することは可能ですか? (私は、高度なインストーラと呼ばれるサードパーティ製のソフトウェアを見てきましたが、これは私が私が必要とするソリューションを実現するのに役立ちます場合、私は確かに知っていない)するか、それが一般的なインストーラプロジェクトを作成することは可能でしょうか?
注:二つのインストーラ(x64の対x86の)私たちは、私が再定義する必要はありません、自動更新のプロセスを持っているので、展開が実現可能ではありません。 1つのMSIファイルを維持することは私にとって重要です。
アドバイスありがとうございます。 http://www.advancedinstaller.com/user-guide/qa-OS-dependent-install.html
また、あなたが必要と同じ名前を持つDLLの2つのバージョンを持っている場合:MSIは、次の資料がそれを行う方法を説明し、高度なインストーラの問題ではありませんのx86からファイルをインストールする
NSISでこれを行うことができます。 – leppie
本当の問題は、x86アプリケーションからx64 DLLを使用できなくなることです。 –
32ビットプロセスから64ビットDLLを使用することはできません(またはその逆)。これは、アドレス空間の間で変換する方法がないため、一部にあります。 [この投稿はRaymond Chenのブログの詳細を参照](http://blogs.msdn.com/b/oldnewthing/archive/2008/10/20/9006720.aspx)。 64ビットと32ビットを混在させたい場合、2つのプロセスとある種のプロセス間通信が必要です。 –