安装程序停止服务并给出正在使用的文件警告

Installer stopping service and giving file in use warning

我有一个 WiX 安装程序项目,它安装了一个客户端应用程序和一个 windows 服务。它设置为在安装期间停止服务。但是它仍然显示错误 window "The following applications are using files which the installer must update" 以及 "Try Again"、"Continue" 和 "Cancel" 选项。如果我选择继续并检查安装程序的 windows 事件日志,它会显示服务被停止并再次启动。 StopServices 元素位于推荐的序列位置。

如何避免错误 window?

[编辑] 我的理解是文件的排列顺序无关紧要 windows 安装程序在复制任何文件之前停止服务。一直在想是否需要先列出服务exe。

最佳解决方案:使用 "ServiceInstall" 和 "ServiceControl" 元素确保服务 stopped/started(和 installed/uninstalled)正确。

事实上,在我们的安装程序中,应用程序和服务是 stopped/started 来自自定义安装程序代码的。但是,在自定义安装程序代码为 运行 之前会检查文件是否正在使用中。因此,这些文件在安装程序启动时正在使用,但在安装程序尝试复制文件时尚未使用。对用户来说很烦人,但实际上不是问题。如果在安静模式下使用 msiexec.exe 安装,则安装成功。

此外,在实际关闭之前,我们还遇到了从关闭调用返回的服务的另一个问题。 (正如@PhilDW 评论的那样)。