【发布时间】:2011-08-06 21:22:01
【问题描述】:
我们有很多关于卸载 Windows 服务的 stackoverflow 问题。
在尝试了所有这些之后,我仍然无法在新版本安装时卸载 Windows 服务。
我使用安装和部署项目来安装/卸载我的项目,该项目具有 Windows 服务和其他一些项目。
在安装较新版本的过程中,所有其他项目都成功重新安装,但windows服务项目无法重新安装并显示:
错误 1001:指定的服务已经存在。
我参考了this link 并尝试将代码添加到我的安装自定义操作以停止服务。如果我正确理解了此链接中的答案,我已将停止服务的代码放入服务的 projectInstaller.cs 文件中:
public override void Install(IDictionary stateSaver)
{
ServiceController sc = new ServiceController("SareeManagerNotifications");
if (sc.Status == ServiceControllerStatus.Running)
sc.Stop();
base.Install(stateSaver);
}
自定义操作窗格如下所示:
突出显示的部分是服务。
我还经历了this answer,它说将自定义操作条件设置为NOT PREVIOUSVERSIONSINSTALLED。
这对我不起作用。我哪里错了?
提前致谢:)
【问题讨论】:
-
看起来您正在停止服务,但实际上并未销毁它。该错误表明该服务已经存在,因此您有两个选择。要么您的代码接近关闭服务然后重新安装它,或者如果该服务存在并且正在运行,只需停止它,替换您的文件,然后再次启动该服务。
-
@Stephen Connolly:请您指导我如何完全取消服务。我试图在互联网上搜索它,但我想我可能无法输入正确的关键词来找到它。谢谢
标签: c# .net visual-studio windows-services installation