none
マージモジュールのカスタム動作がインストール毎必ず実行されてしまう。 RRS feed

  • 質問

  • はじめまして。

    複数のアプリケーションで共有したいコンポーネントがあり、
    ファイルを配置し、カスタム動作のスクリプトで配置先のファイルパスを登録・解除する
    マージモジュールプロジェクトをVisual Studio 2008で作成しています。

    このマージモジュールを2つのセットアッププロジェクト(AとB)でインストールしたところ、
    以下のような動きになりました。

    1.Aをインストール
     ファイルが配置され、カスタム動作/インストールのスクリプトが実行

    2.Bをインストール
     カスタム動作/インストールのスクリプトが実行

    3.Bをアンインストール
     カスタム動作/アンインストールのスクリプトが実行

    4.Aをアンインストール
     カスタム動作/アンインストールが実行し、ファイルが削除される。


    3.の時点でもカスタム動作/アンインストールのスクリプトが実行されてしまうのですが、
    ファイルの削除される4.の時点でのみ、スクリプトを実行する方法はありますでしょうか。
    よろしくお願いします。

    2010年1月21日 11:52

回答

  • 自己レスです。

    引き続き調べていましたが、質問した内容の処理を実行するために
    標準で用意されている設定等は無いものと判断しました。

    そこで、スクリプト内でレジストリを操作し、自前の参照カウントを設けることで
    ファイルが削除されるタイミングを判定することにしました。

    これが最善の手なのか分かりませんが、今回はこの方式で実装することにします。
    お騒がせしました。

    • 回答としてマーク h.hira 2010年1月22日 13:15
    2010年1月22日 13:15