gpt4 book ai didi

xaml - Windows 服务的 TFS 持续部署?

转载 作者:行者123 更新时间:2023-12-03 01:24:47 26 4
gpt4 key购买 nike

我已成功使用 TFS Msbuild 为我的 Web 项目进行持续部署。

我研究了几个小时,但找不到实现 Windows 服务持续部署的相关链接。

可以使用 TFS 构建定义为 Windows 服务制作 CD 吗?即对于应执行以下步骤的每次检查,我将 TFS2010 与 Windows Server 2008 R2 一起使用

1]停止服务,

2] 将相应的项目文件夹从(源)构建服务器复制到(目标服务器)“staging server1”或“staging server2”

3]启动服务(愿意手动执行此步骤)

有任何博客、教程引用来实现这一点吗?我的猜测是需要使用 Power shell 脚本,但不确定。

最佳答案

应该没问题,您需要在要部署到的机器上安装代理。并且您需要能够退出 XAML 模板(您可能想要复制执行构建的现有模板,然后将停止/复制/启动内容添加到其末尾)。

在 CI 构建之后,您需要编辑它(XAML 模板)来启动和停止您可以使用“调用进程”事件的服务(您可能想要执行一些操作,例如使其通用并通过在服务名称中作为参数 - 请注意,您可以在元数据参数中更改显示名称等,以便它在构建定义中显得有意义)。

就跨区域复制内容而言,您可以通过访问放置位置等属性来相当轻松地完成此操作。

应该相当简单 - 一旦你开始修改模板!

编辑:

抱歉没有尽快回复,我必须修改我之前的评论,这并不像看起来那么简单,除非你真的知道你想要什么,我一直在考虑这个,就像剥猫皮一样,有实现这一目标的方法不止一种...我已经重写了几次,所以我希望编辑有意义:)

归结为以下几点:

1) 将您想要运行它的构建代理/机器传递到您的模板中(这可以作为一个简单的字符串,或者作为一个 AgentReservationSpec - 由您决定),因为它不太可能是您运行的机器您实际的 CI 构建基础。这是在 XAML 的参数部分完成的,如前所述,如果您想编辑显示名称/描述,您可以编辑元数据参数。当然,这台机器需要安装 TFS 代理。

2) 在远程计算机上运行任务,这是通过将 Agent Scope 事件添加到模板中来完成的,您必须使用步骤 1 中的信息来获取 ReservationSpec(因此如果添加参数会更容易)作为 AgentReservationSpec,否则您需要在模板中解决此问题)

2.1)运行停止/卸载,这是通过放入(实际上是两个)调用进程事件来完成的,调用进程可以接受参数,并且您需要将其指向正在执行的可执行文件,因此您需要要使用它,一个用于 NET 命令(即 NET STOP ),另一个用于 InstallUtil.exe。

2.2) 将文件从 CI 复制到远程服务器,您可以为此使用复制目录事件,它需要几个参数,主要一个是源位置,您应该能够放入 GetBuildDetail Activity,给它一个名称,然后引用 .DropLocation 来获取它,目的地是您想要安装到的任何位置。

2.3)安装新的服务如步骤2.1,您需要使用Invoke Process来安装该服务,然后您可以使用另一个来启动该服务。

我没有涵盖所有内容,但我还没有自己设置它,所以我确信存在一些陷阱或我没有想到的事情。从我的角度来看,这是有道理的,但也许更了解的人可以在其中戳出一些漏洞:)

关于xaml - Windows 服务的 TFS 持续部署?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13342603/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com