4

「LaunchConditions」の前にカスタムアクションをシーケンスすることは可能ですか?

これは私のカスタムアクションです:

<CustomAction
    Id="CA_vcAppRunning"
    BinaryKey="vcShowMsg"
    DllEntry="IsAppRunning"
    Return="check"
    Execute="immediate"/>

シーケンス<InstallExecuteSequence/>

<Custom Action="CA_vcAppRunning" Before="LaunchConditions" />

これを試し、 OrcaでMSIファイルを開いたところ、カスタムアクションが「99」でシーケンスされていることがわかりました。しかし、インストールしようとすると、呼び出されませんでした。

このカスタムアクションはLaunchConditionで使用されるプロパティを設定することになっているため、LaunchConditionsの前にこれをスケジュールしたいと思います(アプリケーションが実行されている場合は、インストーラー/アップデーターを終了します)。

4

1 に答える 1

4

LaunchConditionsにスケジュールしないで、後でスケジュールしてFindRelatedProductsから、最初のCAの結果に基づいてインストールをブロックする2番目のカスタムアクションを追加します。

これは、多くのチュートリアルでダウングレードを防ぐために使用されるのと同じ方法です。

<CustomAction Id="CA_BlockOlderVersionInstall" Error="!(loc.LaunchCondition_LaterVersion)" />
<InstallExecuteSequence>
        <LaunchConditions After="AppSearch" />
        <Custom Action="CA_BlockOlderVersionInstall" After="FindRelatedProducts">
            <![CDATA[NEWERVERSIONDETECTED]]>
        </Custom>
</InstallExecuteSequence>
<InstallUISequence>
        <LaunchConditions After="AppSearch" />
        <Custom Action="CA_BlockOlderVersionInstall" After="FindRelatedProducts">
            <![CDATA[NEWERVERSIONDETECTED]]>
        </Custom>
</InstallUISequence>
于 2010-02-02T05:00:15.597 に答える