azure-devops - 构建管道在“初始化作业”步骤失败
问题描述
我已经建立了一个构建管道,它构建一个解决方案(windows 服务),将它发布到 windows 服务器上并启动服务。它第一次完美运行。
之后,当我触发管道时,它在“初始化作业”步骤失败并报告它无法删除调试文件夹中的某些文件。
虽然我知道为什么它不能删除这些文件(服务正在运行),但我无法找到预先停止服务的方法。我尝试将 powershell 脚本作为第一个任务运行,例如使用脚本,以便它可以删除我以前的构建
if (Get-Service "MyService" -ErrorAction SilentlyContinue) {
net stop MyService
sc.exe delete MyService
}
但它甚至在从管道执行任何任务之前就失败了。
最好的方法是什么?
解决方案
我在本地服务器中使用了这些 Windows 服务发布任务:
https://marketplace.visualstudio.com/items?itemName=jabbera.windows-service-release-tasks
查看附加的图像,我认为可能会尝试将不应该存在的东西放入构建管道中。与其尝试将服务安装为构建管道(或多阶段管道的构建阶段)的一部分,不如将部署任务分开以发布管道(或多阶段管道的发布阶段)。您现在实际上正在运行尝试在构建代理中创建服务的操作,并且您希望在将构建结果复制到的服务器中运行它们。
使用部署组代理运行发布管道,以便在您部署到的服务器上执行发布,或者如果不可能,请使用托管代理/构建服务器代理运行发布管道,但使用 WinRM 针对目标服务器运行任务。
推荐阅读
- c# - Fortify 问题 - ASP.NET 配置错误:持久身份验证 - c#
- javascript - 从长远来看,使用“--force”或“--legacy-peer-deps”会有害吗?
- angularjs - Angular SPA 应用程序的 Akamai 缓存
- php - Laravel 8 应用程序 - 当我尝试下载压缩文件时无法访问该站点
- c++ - 如何在 xamarin UWP 中使用 C++ lib (.so)
- java - : 创建类路径资源中定义的名称为“requestMappingHandlerMapping”的 bean 时出错
- reactjs - 如何将数据从模板组件传递到反应中的其他组件
- laravel - 为什么文件 /resources/views/errors/404.blade.php 没有在无效的 url 上打开?
- python - 根据分组场景熊猫中的最大值数替换列值
- ruby-on-rails - 为什么会出现错误`发生未处理的低级错误。
`发生?即使我验证了 SECRET_KEY_BASE 已在 Linux 中正确设置