如何更新已安装的 Windows 服务?

Posted

技术标签:

【中文标题】如何更新已安装的 Windows 服务?【英文标题】:How to update an installed Windows service? 【发布时间】:2014-04-05 10:17:21 【问题描述】:

我用 C# 编写了一个 Windows 服务。

我已经在我的机器上安装了它,它运行得很好。

当您安装服务时,exe 是否会被复制到某处?还是它指向我的bin 文件夹?

这是为了让我知道,当我不时更新我的​​代码时,我是否必须卸载并重新安装我的服务才能更新它?

【问题讨论】:

我将创建安装项目来安装 windows 服务。 否,InstallUtill.exe 在创建服务时使用原始可执行路径。正如@Riz 所说,您可以检查来自 services.msc 的路径。 【参考方案1】:

如果您想自动更新您的服务,您可以使用 Google Omaha 等框架。这是谷歌用来更新 Chrome 的技术。它与服务配合得很好,因为它在后台静默运行,就像服务一样。 This article 提供了有关使用 Omaha 自动更新服务的更多信息。

另一方面,如果您想手动更新您的服务:如果服务的位置未更改且其可执行文件的名称未更改,则您不必卸载并重新安装它。您可以简单地使用net stop 停止服务,使用新版本更新其可执行文件,然后使用net start 重新启动它。这种方法对我来说可靠地工作了好几个月。

【讨论】:

【参考方案2】:

你应该卸载旧的windows服务并安装新版本的windows服务。

卸载:

   installutil /u yourproject.exe

安装:

   installutil yourproject.exe

【讨论】:

这与此处的其他答案背道而驰。你能提供更多信息吗?【参考方案3】:

您可以通过从运行中打开 services.msc 来检查已安装服务的路径。然后右键单击您的服务并查看“可执行文件的路径”。

如果这指向你的 bin 目录,那么每次编译成功时都会更新它。

【讨论】:

以上是关于如何更新已安装的 Windows 服务?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows Phone 8 中检查应用程序是不是已更新或全新安装?

用优化大师检测到系统漏洞:补丁名称KB950582,补丁描述WINDOES XP更新程序。

[MongoDB]------windos远程服务器部署连接

如何强制卸载windows服务

安装Windows服务失败:服务已存在

如何把流量导入tapwindows