我有一项服务需要 30-60 秒才能停止。当我运行安装程序并将服务升级到新版本时,我总是会看到以下窗口(我在继续安装之前验证服务是否已停止。
有没有办法在安装程序中设置此超时,以便应用程序有足够的时间停止服务以进行最终用户可能安装的任何更新?我们的安装程序是使用 WiX 3.5 构建的。
我有一项服务需要 30-60 秒才能停止。当我运行安装程序并将服务升级到新版本时,我总是会看到以下窗口(我在继续安装之前验证服务是否已停止。
有没有办法在安装程序中设置此超时,以便应用程序有足够的时间停止服务以进行最终用户可能安装的任何更新?我们的安装程序是使用 WiX 3.5 构建的。
不幸的是,等待在 Windows Installer 中是不可配置的。从他们的文档中:
Wait
Leaving this field null or entering a value of 1 causes the installer to
wait a maximum of 30 seconds for the service to complete before proceeding.
The wait can be used to allow additional time for a critical event to return
a failure error. A value of 0 in this field means to wait only until the
service control manager (SCM) reports that this service is in a pending state
before continuing with the installation.
您需要让您的服务更快地关闭(对最终用户来说也很棒;)或者必须编写一个自定义操作来自己关闭。这将是一大块工作,并为安装增加了更多的脆弱性(就像每个自定义操作一样),所以我会尽可能努力地修复服务。