在删除期间要运行的条件操作

有两种方法可以创作安装数据库,以便仅在卸载包时调用操作:

  • 如果操作排在 InstallExecuteSequence 表中的 InstallValidate 操作之后,则包作者可以在 Condition 列中为操作指定 REMOVE=“ALL”的条件。 请注意,在安装程序执行 InstallValidate 操作之前,卸载期间不保证 REMOVE 属性设置为 ALL。 请注意,在这种情况下,需要在值 ALL 两侧添加引号。
  • 如果操作排在 CostFinalize 操作和任何可能更改功能状态的操作(例如 MigrateFeatureStates 操作)之后,则可以根据特定功能或组件的状态设置该操作的条件。 请参阅条件语句语法。 使用此选项在删除特定功能或组件期间调用操作,这可能会在完全删除应用程序之外发生。

请注意,条件表达式中可使用 Installed 属性来确定产品是按每计算机安装还是为当前用户安装。 若要确定产品是否是为其他用户安装的,请查看 ProductState 属性。

请注意,在升级期间,可以通过 RemoveExistingProducts 操作删除较旧版本的产品。 在这种情况下,Upgrade 表还可以将 REMOVE 属性设置为 ALL。 若要确定是否通过升级来删除产品,请查看 UPGRADEPRODUCTCODE 属性。 仅当 RemoveExistingProducts 删除产品时,安装程序才会设置此属性。 安装程序不会在正常卸载(例如通过“添加/删除程序”删除)期间设置该属性。