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