2012-02-03 94 views
4

我有一个已经安装在服务器上的windows服务,我有一个新版本的可执行文件和链接程序集。我用于安装新版本的正常的程序是:我可以XCOPY部署Windows服务吗?

  1. 停止服务
  2. 卸载使用InstallUtil /u
  3. 覆盖服务的可执行文件和链接组件用新的服务
  4. 安装服务使用InstallUtil
  5. 启动服务

我想知道如果我米做得太多?有只执行下列任何问题:

  1. 停止服务
  2. 覆盖服务的可执行文件和链接组件用新的
  3. 启动服务

我不认为卸载/安装是必要的,但找不到任何正式确认。

+2

最明显的问题是涉及到系统关闭;出于这个原因,我倾向于使用'AppDomain's - 服务可以自我更新(在可写的地方执行* actual *系统),而exe只是处理进程启动和应用程序域管理;零停机时间来更新 – 2012-02-03 16:46:38

+2

@MarcGravell这是一个绝妙的主意,听起来很可重用。我没有用AppDomains做过多的编程,所以有一个框架或模板或博客文章,你可以指出我会开始吗? – 2012-02-03 18:03:10

回答

4

如果服务已经安装,是的,你可以xcopy部署你的新的可执行文件和程序集,没有任何问题。

所有installutil正在创建指向服务可执行文件的相应注册表项。如果您以前运行过installutil来创建这些条目,那么当您更换可执行文件时,无需重复此步骤。

+0

你的回答有点误导。或者说,你正在回答标题中的问题(“我可以XCOPY” - >是),但是他提出的最后一个问题是“执行以下操作时是否有任何问题”,答案是** no ** :-) – 2012-02-03 16:39:20

+1

公平点:)相应地编辑 – Cocowalla 2012-02-03 16:40:39