我编写了一个使用 Visual Studio 2010 安装项目安装的应用程序。作为安装的一部分,我的应用程序安装并启动了一个 Windows 服务。没有问题。
当我发布应用程序的新版本时,安装程序会覆盖应用程序文件夹的内容。不幸的是,它无法覆盖该服务,因为它已经在运行。
如何在 MSI 开始复制文件之前停止服务?我正在考虑不安装但删除服务的自定义 bootstrap (安装程序先决条件)。或者我可以在安装前使用 Orca 添加操作吗?或者你知道另一种方式吗?
最佳答案
通常这是通过 service control operations 完成的.基本上,您需要为卸载设置停止和删除标志。
另一种方法是使用 ServiceInstaller.Uninstall在自定义操作中停止和删除服务。
如果你想避免使用文件对话框,你可以试试这个方法:
Problem stopping Windows Service from Installer Class. Events fire too late
关于visual-studio - 安装前停止服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6531271/