我已经建立了构建管道,用于构建解决方案(Windows服务),将其发布在Windows服务器上并启动服务。它是第一次完美运行。
此后,当我触发管道时,它在Consider exposing System.Diagnostics.StackTraceHiddenAttribute
publicly步骤失败,并报告无法删除Debug文件夹中的某些文件。
虽然我知道为什么它不能删除这些文件(该服务正在运行),但我无法找到一种提前停止该服务的方法。我尝试将Powershell脚本作为第一个任务(例如"Initialize Job")与脚本一起运行,以便它可以删除我以前的版本
if (Get-Service "MyService" -ErrorAction SilentlyContinue) {
net stop MyService
sc.exe delete MyService
}
但是它甚至在执行管道中的任何任务之前都会失败。
最好的方法是什么?
答案 0 :(得分:1)
我已经在本地服务器中使用了以下Windows服务发布任务:
https://marketplace.visualstudio.com/items?itemName=jabbera.windows-service-release-tasks
看看所附的图像,我认为可能是在尝试将不应在构建管道中放置的内容放入其中。与其尝试将服务安装为构建管道(或多阶段管道的构建阶段)的一部分,不如单独部署任务以发布管道(或多阶段管道的发布阶段)。现在,您实际上正在运行尝试在构建代理中创建服务的操作,并且想要在将构建结果复制到的服务器中运行它们。
使用部署组代理运行发布管道,以便在要部署到的服务器上执行发布,或者如果不可能,请使用托管代理/构建服务器代理运行发布管道,但使用WinRM来运行任务目标服务器。