RemoveExistingProducts作

RemoveExistingProducts作通过 Upgrade 表的 ActionProperty 列中列出的产品代码,并通过调用并发安装按顺序删除产品。 对于每个并发安装,安装程序会将 ProductCode 属性设置为产品代码,并将 REMOVE 属性设置为升级表的“删除”字段中的值。 如果“删除”字段为空,则其值默认为 ALL,安装程序将删除整个产品。

安装程序仅在首次安装产品时运行 RemoveExistingProducts作。 在 维护安装 或卸载期间,它不会运行该作。

序列限制

RemoveExistingProducts作必须在以下位置之一的作序列中计划。

  • InstallValidate作InstallInitialize作之间。 在这种情况下,安装程序会在安装新应用程序之前完全删除旧应用程序。 此作的放置效率低下,因为所有重复使用的文件都必须重新编码。
  • InstallInitialize作 之后,以及生成执行脚本的任何作之前。
  • InstallExecute作InstallExecuteAgain作之间,以及 InstallFinalize作。 通常,最后三个作将排在彼此之后:InstallExecute、RemoveExistingProducts 和 InstallFinalize。 在这种情况下,先安装更新的文件,然后删除旧文件。 但是,如果删除旧应用程序失败,安装程序将回滚旧应用程序的删除和新应用程序的安装。
  • InstallFinalize作之后。 这是作最有效的位置。 在这种情况下,安装程序在删除旧应用程序之前会更新文件。 安装过程中只会安装要更新的文件。 如果删除旧应用程序失败,安装程序只会回滚旧应用程序的卸载。

ActionData 消息

作数据的说明
[1] 已删除的产品。

 

言论

Windows Installer 在运行此作时设置 UPGRADINGPRODUCTCODE 属性。