通过Wix / MSI卸载时停止/删除LocalSystem服务

时间:2016-04-27 12:22:09

标签: service wix windows-installer

据我所知,

的答案 如果服务作为LocalSystem启动,卸载软件包时停止和卸载服务是非常有效的。

有没有可能实现这一目标?我无法想象如果不强制使用File-In-Use对话框或RestartManager-Popup,这是不可能的。

1 个答案:

答案 0 :(得分:2)

您提到的任何主题都不是相关的。停止服务通常不是问题,无论是否是本地系统。当被问及:他们写得不好时,服务不会停止,这只是一个普遍的原因。它们只是代码,如果它们没有及时响应停止请求,那么就会出现问题。如果他们决定花20分钟关闭,拿一个离谱的例子,你就不能责怪卸载者。如果服务在其中一个托管进程中也可能无法正常停止,以便某些普通可执行文件可以作为服务运行,我认为这是java类型问题的情况。

当存在服务中的文件使用问题时,如果他们不关闭,可能会发生这种情况,但如果他们不再是服务但这个过程不会消失(这通常是主机类型服务的情况)。服务可以响应停止请求,Windows将不再将其视为服务,但不要求该过程消失 - 它可以继续运行,进行清理或其他任何操作,因此它仍将导致文件 - 在用检查。它也是Visual Studio安装项目中的安装程序类(它不使用标准的MSI操作)的常见问题,因为在使用安装程序类的设置中没有任何内容可以关闭正在运行的服务。

如果您遇到特定问题,则应将其发布,但在卸载过程中始终停止服务并且没有任何问题。