2016-04-11 20 views
0

capicom.dllを私のインストーラで登録し、製品のアンインストール中に登録を解除しています。もう1つのサードパーティのソフトウェア「ABC」があり、このDLLも登録して使用します。DLLが別のアプリケーションで使用されているかどうかを確認してください

しかし、問題は、私自身の製品をアンインストールするときに、私はcapicom.dllの登録を解除することです。このため、他のサードパーティのソフトウェア「ABC」は適切に動作していません。 登録していないときにこのDLLが別の製品/アプリケーションで使用されているかどうかを確認する方法はありますか?

答えて

1

この問題には100%答えがありません。関連する問題に対処しようとする、演奏中の基礎となる技術に応じて、さまざまな規則があります。これらには、

  • Windowsインストーラコンポーネント数(複数の.msiパッケージは、マージモジュールからのように、同一のコンポーネントをインストールする場合)
  • 他のパッケージレベル参照カウントを追跡

    • のSharedDLLsレジストリキーを、与えられたファイルのための単一の場所があるときの参照スキームが
    • は、システムフォルダ

    からしかしこれらの作業のみをアンインストールすることはありません。あなたの場合、行間を読んで、私はcapicom.dllの複数のファイルの場所があると思うが、そのCOM登録のための単一のレジストリの場所だけである。したがって、コピーをインストールすると、既存のCOM登録を上書きすることができます。あなたのコピーが準備されている間は、すべてうまくいきます。しかし、コピーを削除したり、登録を解除したりすると、COM登録は元のコピーに戻りません。

    capicom.dllのファイルコピーが1つだけであるとは限りませんが、私が考えることのできる最良の選択肢は、capicom.dllのプライベートコピーを参照する実行ファイルにregistration-free COM manifestを使用し、 capicom.dllの。 InstallShieldを使用すると、外部マニフェストを作成することができます。代わりに、マニフェストを作成し、実行ファイルに埋め込むこともできます。 capicomをロードする必要があるinproc COMサーバーを公開している場合は、アクティベーションコンテキストが機能することを確認するためにさらに注意してください。

  • 関連する問題