2010-05-12 38 views
4

作为构建的一部分,我们需要能够将部分窗口服务部署到远程机器上。 这是一个夜间构建,它将整个应用程序部署到测试环境,因此它必须以某种方式自动执行。TFS 2010:如何将Windows服务作为构建的一部分进行部署?

对于Web项目,可以使用MSDeploy以及DB服务器。 但是windows服务呢?他们必须停止(如果已经安装)在目标机器上,然后二进制文件需要被复制,服务必须注册(如果没有先前安装)等,等等...

+0

你有没有找到这个答案?我正在尝试做同样的事情,而我的谷歌正在让我失望。 – Koby 2010-10-05 16:23:59

回答

1

您可以使用MSDeploy来执行此操作。有一个runCommand提供程序在目标计算机上运行指定的命令。

msdeploy.exe -verb:sync -source:runCommand="net start MyService" -dest:auto 

你可以在这里阅读更多: http://technet.microsoft.com/en-us/library/ee619740(WS.10).aspx

+0

还有很多涉及使用TFS的工作 – 2014-04-22 22:20:44

1

我们的方式来实现这一点是在我们的服务器上运行的litte web服务,它监视某个目录中的新文件。 我们的版本使用临时名称将windows服务部署到该文件夹​​,然后将它们重命名为受监控的名称模式(“servicename.deployservice.zip”) 部署服务将采用此类文件,将其解压缩到临时位置并执行部署的必要步骤(例如,停止旧服务,卸载旧服务,安装新服务,启动新服务)。 如果您需要传输特殊操作,您可以在部署ZIP文件中添加部署代码DLL或“构建脚本”。

用最普通的方法完成这种部署代码的最简单方法是只需要在zip文件中设置(msi或其他)的服务并执行该服务。通过这种方式,您可以简单地将部署设置添加到您的项目中,并且在您的Teambuild中做的事情要少得多......

1

假设您使用的是VS 2010和TFS 2010,那么您可以修改构建工作流以添加ExecuteProcess活动(在AgentScope目标服务器活动中)运行svcutil.exe,指定服务的名称。

相关问题