如何更新已安装的 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更新程序。