我正在进行的项目是使用 TFS Build 和 Web Deploy 来处理网站的部署和对服务器的服务。我们还有一个需要部署到服务器的 Windows 服务。
我的问题是:有没有办法将 Windows 服务从 TFS 构建服务器部署到 Web 服务器?
我遇到的另一个问题是服务需要在部署之前停止。我试图修改构建配置文件,但无法让它工作。
谢谢。
我正在进行的项目是使用 TFS Build 和 Web Deploy 来处理网站的部署和对服务器的服务。我们还有一个需要部署到服务器的 Windows 服务。
我的问题是:有没有办法将 Windows 服务从 TFS 构建服务器部署到 Web 服务器?
我遇到的另一个问题是服务需要在部署之前停止。我试图修改构建配置文件,但无法让它工作。
谢谢。
选项:
如果您在 Web 服务器上安装 TFSBuildagent 服务并授予在 Web 服务器上运行服务管理员权限的用户,那么您可以为部署/安装创建新的构建定义。这是相当简单和直接的,但这仅在您的 Web 服务器数量有限(希望在所有 2000 台服务器上安装 TFS BUild 代理)并且仅在非生产环境中工作时才有效。这就是我们为非产品部署所做的方式,我创建了一个仅用于部署的构建定义,它负责处理停止服务等所有事情。
如果在构建服务器上运行 TFSBuild 服务的用户在 Web 服务器上有足够的权限,那么您可以使用 psexec 或 powershell 远程运行您的命令。阅读以下链接: 1. PSEXEC
你做了什么来停止构建配置文件中的服务?用户是否有足够的权限?
在 TFS 构建工作流程中,没有内置的活动/过程可以帮助您在远程机器上运行脚本。
第 1 步是确定您将如何在远程计算机上运行脚本,如上所述,您可以使用 PSEXEC 或 Powershell(尽管在远程计算机上运行 PowerShell 的设置可能有点复杂)。
第二步,编写实际脚本来完成工作,停止服务,安装 MSI 等。
第 3 步,编辑您当前的构建定义 - 创建一个新的自定义活动或使用构建定义中的 InvokeProcess 活动来调用您在第 2 步中创建的脚本。InvokeProcess 活动