Windows安装程序 - 升级后重新启动

问题描述:

我有一个Windows Installer MSI软件包,它安装驱动程序,有时需要重新启动才能升级;在WriteRegistryValues之后,驱动程序由延迟自定义操作安装。当需要重新启动时,会有回滚,并且会通知用户重新启动并再次运行安装。Windows安装程序 - 升级后重新启动

在InstallExecuteSequence中,RemoveExistingProducts操作位于InstallValidate和InstallInitialize之间,因此当升级指示需要重新启动时,先前的包已被删除。因此,当需要重新启动时,在回滚和错误消息“重新启动并重新运行此操作”之后,我们的软件不再安装。如果用户重新启动并重复安装,则工作正常。

我需要自动重新启动和恢复安装,因此用户不必实际上做任何事情(从同意当然重启分开。)

写入注册表的RunOnce项命令可以运行在重新启动后再次安装,但我认为对驱动程序安装的延迟自定义操作中发生的情况设置ForceReboot会很棘手。也许很难决定在恢复安装中该怎么做。

有关最佳实践的建议或潜在问题的提示将非常受欢迎。

RemoveInistingProducts在InstallInitialize之前或InstallFinalize之后不会将Action置于新产品的审计脚本中,因此如您所说在升级完成之前删除了旧产品。

因此,您可能想要尝试在InstallInitialize和InstallFinalize之间执行RemoveExisitngProducts执行,这种方式在remove中位于审计脚本部分,因此它将跟踪,重新启动和恢复。

查看系统重启属性 here