【发布时间】:2013-10-23 05:45:41
【问题描述】:
我只需要在修复期间运行自定义操作。但我没有找到这样做的有效条件。 如果我指定具有以下条件的自定义操作,它将在修改模式和修复模式下运行。
Installed AND Not REMOVE
我正在使用 InstallShield 2012 spring。
【问题讨论】:
标签: installation windows-installer installshield installshield-2012
我只需要在修复期间运行自定义操作。但我没有找到这样做的有效条件。 如果我指定具有以下条件的自定义操作,它将在修改模式和修复模式下运行。
Installed AND Not REMOVE
我正在使用 InstallShield 2012 spring。
【问题讨论】:
标签: installation windows-installer installshield installshield-2012
检查REINSTALL 属性。自定义操作的条件语句应类似于 REINSTALL""
【讨论】:
REINSTALL="" 将在安装和卸载阶段评估为 True,因此确切的条件是 (Installed and NOT REMOVE) AND (REINSTALL="") 因为 (Installed and NOT REMOVE) 在修改和修复操作期间为 True,但在修复期间 REINSTALL 属性将设置为空白
【讨论】:
供将来参考查看这些备忘单:
我没有时间检查所有这些条件并对其进行测试,但后一张表从表面上看是合理的。然而:
我相信 REMOVE 有时可以在安装过程中设置(和更改) - 由于 MSI 的命令行界面和属性配置非常灵活,因此处理所有可能性排列非常复杂。
Installshield 备忘单我从未主动使用或检查过。请查看他们的修复建议 - 根据修复的调用方式,会有不同的建议。
请记住还检查自我修复 - 只需删除主应用程序 EXE 并通过调用应用程序的广告快捷方式(如果有)来触发自我修复。我检查已经有好几年了,但自我修复可能只在 InstallInitialize 和 InstallFinalize 之间运行。
【讨论】: