RemoveExistingProducts 操作
RemoveExistingProducts 操作通过 升级表 的 ActionProperty 列中列出的错误代码,并通过调用并发安装来按顺序删除产品。 对于每个并发安装,安装程序会将 ProductCode 属性设置为产品代码,并将 REMOVE 属性设置为升级表的“删除”字段中的值。 如果“删除”字段为空,则默认值为 ALL,安装程序将删除整个产品。
安装程序首次安装产品时仅运行 RemoveExistingProducts 操作。 在 维护安装 或卸载期间,它不会运行该操作。
序列限制
RemoveExistingProducts 操作必须在以下位置之一的操作序列中计划。
- InstallValidate 操作和 InstallInitialize 操作之间。 在这种情况下,安装程序会在安装新应用程序之前完全删除旧应用程序。 这是操作的低效放置,因为所有重复使用的文件都必须重新编码。
- 在 InstallInitialize 操作之后以及生成执行脚本的任何操作之前。
- 在 InstallExecute 操作或 InstallExecuteAgain 操作和 InstallFinalize 操作之间。 一般情况下,最后三个操作是依次安排的:InstallExecute、RemoveExistingProducts 和 InstallFinalize。 在这种情况下,先安装更新的文件,然后删除旧文件。 但是,如果删除旧应用程序失败,安装程序会回滚旧应用程序的删除和新应用程序的安装。
- InstallFinalize 操作后。 这是操作的最高效放置。 在这种情况下,安装程序会更新文件,然后再删除旧应用程序。 安装过程中只会安装要更新的文件。 如果删除旧应用程序失败,安装程序只会回滚旧应用程序的卸载。
ActionData 消息
字段 | 操作数据的说明 |
---|---|
[1] | 已删除的产品。 |
注解
Windows安装程序在运行此操作时设置 UPGRADINGPRODUCTCODE 属性。