首页 > 解决方案 > 构建管道在“初始化作业”步骤失败

问题描述

我已经建立了一个构建管道,它构建一个解决方案(windows 服务),将它发布到 windows 服务器上并启动服务。它第一次完美运行。

之后,当我触发管道时,它在“初始化作业”步骤失败并报告它无法删除调试文件夹中的某些文件。

虽然我知道为什么它不能删除这些文件(服务正在运行),但我无法找到预先停止服务的方法。我尝试将 powershell 脚本作为第一个任务运行,例如使用脚本,以便它可以删除我以前的构建

if (Get-Service "MyService" -ErrorAction SilentlyContinue) {

    net stop MyService
    sc.exe delete MyService

}

但它甚至在从管道执行任何任务之前就失败了。

最好的方法是什么?

标签: azure-devopsazure-pipelines

解决方案


我在本地服务器中使用了这些 Windows 服务发布任务:

https://marketplace.visualstudio.com/items?itemName=jabbera.windows-service-release-tasks

查看附加的图像,我认为可能会尝试将不应该存在的东西放入构建管道中。与其尝试将服务安装为构建管道(或多阶段管道的构建阶段)的一部分,不如将部署任务分开以发布管道(或多阶段管道的发布阶段)。您现在实际上正在运行尝试在构建代理中创建服务的操作,并且您希望在将构建结果复制到的服务器中运行它们。

使用部署组代理运行发布管道,以便在您部署到的服务器上执行发布,或者如果不可能,请使用托管代理/构建服务器代理运行发布管道,但使用 WinRM 针对目标服务器运行任务。


推荐阅读