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