WiX/MSI -自定义动作-升级逻辑

WiX/MSI - Custom Action - Upgrade Logic

本文关键字:-升 MSI 自定义 WiX      更新时间:2023-10-16

我有一些要求,说明我们必须在安装阶段设置调度器任务,然后在卸载阶段自然地删除它们。

然而,当我们引入升级机制(我们只有主要升级)时,这种情况变得复杂,我们必须保留这些调度器任务。

由于我们决定使用升级逻辑的方式:

<RemoveExistingProducts After='InstallFinalize'/>

我们的新版本得到首先安装,然后旧版本得到卸载,因此unschedule操作被执行,并擦除调度任务:

<Custom Action='CA_unscheduleUpdates' Before="InstallFinalize">
    <![CDATA[Installed]]>
</Custom>

有没有办法控制这种情况下,我们正在升级,只是不触发计划外的自定义操作?也许我有一些东西,我可以控制在我的自定义动作c++代码?

您可以使用"Not UPGRADINGPRODUCTCODE"来约束自定义操作的执行。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa372380 (v = vs.85) . aspx