4

是否可以在“LaunchConditions”之前对自定义操作进行排序?

这是我的自定义操作:

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

排序在<InstallExecuteSequence/>

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

我试过这个,在Orca中打开 MSI 文件,发现我的自定义操作顺序为“99”。但是当我尝试安装时,它从来没有被调用过。

我想在 LaunchConditions 之前安排这个,因为这个自定义操作应该设置在 LaunchCondition 中使用的属性(如果应用程序正在运行,请退出安装程序/更新程序)。

4

1 回答 1

4

不要将其安排在之前LaunchConditions,将其安排在之后FindRelatedProducts,然后根据您的第一个 CA 的结果添加第二个阻止安装的自定义操作。

这与许多教程中用于防止降级的方法相同,例如

<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 回答