0

我们创建了一个 Inno Setup 脚本来安装和更新 Windows 服务。可以手动使用相同的安装程序,也可以从自动安装/更新解决方案中使用。

使用安装程序更新现有安装时,安装程​​序会在更新之前正确终止正在运行的服务进程。此服务依赖于 Windows 重新启动管理器自动重新启动,并且 Inno Setup 能够在安装完成后重新启动它。

在某些情况下,使用安装程序部署的某些文件无法即时更新,因为它们需要重新启动 Windows 才能完成。我们决定不强制系统重启,并请尽快提示用户重启。一切都按预期工作,除了 Inno Setup 由于等待 Windows 重新启动而取消服务重新启动,即使重新启动后没有需要更新的直接进程依赖项也是如此。

从 Inno 设置日志:

Need to restart Windows, not attempting to restart applications

虽然这可能有逻辑,但服务没有自动重新启动这一事实代表了我们场景中的一个问题,即强制用户立即重新启动,这不是我们想要的。

这是命令行参数:/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /RESTARTEXITCODE=123456 /RESTARTAPPLICATIONS

这是安装日志的一部分: 在此处输入图像描述

/RESTARTAPPLICATIONS 命令行标志对此行为没有影响,因为无论该标志是否存在,只要没有挂起的重新启动,服务应用程序都会正确重新启动。

一种解决方案可能是在 Run 部分调用外部脚本或使用 Pascal 代码重新启动服务,但我们希望尽可能避免它。

我们错过了什么吗?即使有挂起的重新启动,是否有办法让服务重新启动始终成功?

4

0 回答 0