私たちのプログラムのうちの2つは、同じクラスIDを持つ同じCOMサーバー(これも私たちが作成したもの)を使用しています。インストール時に各プログラムは、COMサーバーファイルをそのフォルダーにコピーし、COMサーバーにコピーしregsvr32
ます。
問題は、COMサーバーをインストールして、ユーザーがプログラムのいずれかまたは両方を異なるフォルダーに任意の順序で、場合によっては異なるバージョンでインストールできるようにする方法です。明らかに、クラスIDを変更せずにそれは不可能であり、それは構成に多くの面倒です。理想的には、そのためにマニフェストを使用し、なしで使用したいと思いregsvr32
ます。
問題は、reg-free COM(たとえば、ここ)について読むたびに、にversion
属性があることassemblyIdentity
です。バージョン番号はビルドごとに変更する必要があり、(自動的に)調整するというアイデアはまったく好きではありません。特定のバージョンへの依存関係を指定することが良い理由は理解できますが、このシナリオではまったく役に立ちません。
COMサーバーとコンシューマーの両方のマニフェストを記述して、バージョンを指定せず、フォルダー内にあるファイルのバージョンを操作する方法はありますか?また、検索をコンシューマーと同じフォルダーに制限する方法はありますか?