标签: azure-pipelines

数据收集器“代码覆盖率”未能提供初始化信息

我正在尝试使用构建管道创建代码覆盖率报告。我Visual Studio code在构建管道中添加了类型任务并启用了代码覆盖率。

当构建被触发时。我越来越 :

Data collector 'Code Coverage' message: Data collector 'Code Coverage' failed to provide initialization information. Error: System.TypeInitializationException: The type initializer for 'Microsoft.VisualStudio.Diagnostics.Logging.ProfilerInterop' threw an exception. ---> Microsoft.VisualStudio.Diagnostics.Common.InvariantException: Failed to load IntelliTrace Profiler binary or failed to locate functions.
Run Code Online (Sandbox Code Playgroud)

---> System.ComponentModel.Win32Exception: The system cannot find the path specified
Run Code Online (Sandbox Code Playgroud)

这是运行测试并且所有测试都通过了。但是我无法查看代码覆盖率报告。它创建的报告仅包含有关测试的信息

我们在何处指定路径的任何输入都将很有用。

unit-testing code-coverage build azure-pipelines

13
推荐指数
2
解决办法
4876
查看次数

Azure Pipelines Stages (YAML) 上的手动触发器

我正在使用 Azure Pipelines YAML 格式设置管道。我创建了 3 个阶段:构建、暂存和生产。顾名思义,构建阶段构建项目并发布构建工件。Staging 阶段部署到 Staging 环境,Production 阶段部署到 Production 环境。

在我的项目的 Environments 部分,我添加了对生产环境的检查,以便我可以在上线之前批准部署。

我的管道的工作方式是在 Build 阶段完成后自动触发 Staging 和 Production 阶段。我不喜欢这一点的是,当开发人员将他们的代码部署到 Staging 时,他们需要几天时间在 Staging 上对其进行测试,然后再将他们的代码推送到生产环境。所以,在那之前,我的管道一直在运行并等待我的批准。左上角的微调器不断旋转,“持续时间”字段不断传递。

在此处输入图片说明

有什么方法可以让开发人员在准备就绪时手动触发生产阶段而不是构建阶段触发它?

yaml azure-devops azure-pipelines

13
推荐指数
5
解决办法
2万
查看次数

Azure Pipelines - 有没有办法查看文件夹结构?

我正在努力描绘 azure 管道的文件夹结构。我知道有一些隐式目录,例如:

  • $(System.DefaultWorkingDirectory)
  • $(Build.ArtifactStagingDirectory)

这两个文件夹都是池中可用的特定构建代理上的文件夹。

有没有办法查看文件夹结构并更好地了解事物的布局?

azure-devops azure-pipelines

13
推荐指数
4
解决办法
9688
查看次数

.NET Core 3.1 应用程序不再构建在 Azure 管道上 (.NET 5)

直到最近,我们的 .Net Core 3.1 应用程序还在 Azure 管道上构建和发布良好。但是在过去的几天里,构建管道开始失败并出现错误:

##[error]C:\Program Files\dotnet\sdk\5.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(241,5): 
Error NETSDK1005: Assets file 'D:\a\1\s\ProjectFolder\src\Project\obj\project.assets.json' doesn't have a target for 'netcoreapp3.1'. 
Ensure that restore has run and that you have included 'netcoreapp3.1' in the TargetFrameworks for your project.
Run Code Online (Sandbox Code Playgroud)
(ResolvePackageAssets target) -> 
  C:\Program Files\dotnet\sdk\5.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.PackageDependencyResolution.targets(241,5): 
error NETSDK1005: Assets file 'D:\a\1\s\ProjectFolder\src\Project\obj\project.assets.json' doesn't have a target for 'netcoreapp3.1'. 
Ensure that restore has run and that you have included 'netcoreapp3.1' in the TargetFrameworks for your project. [D:\a\1\s\ProjectFolder\src\Project\Project.csproj]
Run Code Online (Sandbox Code Playgroud)

对于失败的解决方案构建步骤,构建管道设置如下。

构建配置 - 使用最新版本,但设置为 VS 2019 也失败。

任何想法如何以最少的更改解决此问题?

.net-core azure-devops azure-pipelines .net-5 .net-core-3.1

13
推荐指数
1
解决办法
2306
查看次数

从Visual Studio Online Build Definition中的多个Web项目的解决方案构建一个Web项目

我正面临一个问题,我需要在Visual Studio Online中使用两个Web项目的解决方案构建一个Web项目.

  • 我还没有找到如何使用"Visual Studio Build"步骤构建一个项目.

如果使用"Visual Studio Build"步骤存在这样的方法,那将会很棒.

  • 我也尝试使用"MSBuild"步骤.不幸的是,在使用Nuget恢复软件包时遇到了问题.我收到错误:## [错误]找不到文件格式标头,## [错误]工具NuGet.exe返回意外退出代码1.运行后:Nuget.exe恢复Myproj.csproj.

总结:

如何在Visual Studio在线构建定义中从具有多个Web项目的解决方案中仅构建一个Web项目?

更新

这是我正在建造时的错误图像.此外,我正在使用"Visual Studio Build"步骤或"MSBuild"步骤.

在此输入图像描述

我在vSO问题中找到了chrisrpatterson的评论:https: //github.com/Microsoft/vso-agent-tasks/issues/571

他说:你不能对SLN文件以外的任何东西进行nuget恢复.您应该取消选中该vsbuild任务上的还原nuget包.

但是我需要这些包,而且我不想将我的包文件夹推送到我的仓库中.

那么,如何在"Visual Studio Build"步骤中从我的解决方案中恢复软件包并仅运行一个Web项目?

c# msbuild azure-devops azure-pipelines

12
推荐指数
1
解决办法
9206
查看次数

VSTS版本管理:按工件来源分支过滤

我正在使用VSTS构建来运行CI构建.此版本定义是相同的我所有的Git分支(主,开发,功能等).

我现在正尝试使用VSTS版本管理实现部署管道.我计划有两个不同的版本定义.一个用于功能分支,一个用于更重要的分支,如develop和master.功能分支的发布定义将更加轻量级.

我认为这是非常基本和平常的.实际上,这几乎是微软发布管理典型用例中记录的内容.

对于这两个管道,我想将它们配置为使用"持续部署"触发器自动启动.当我选择此触发器时,我必须选择一个工件源.

不幸的是,工件源会获取来自给定构建定义(我的CI构建)的所有工件(无论分支).由于我对所有分支使用相同的CI构建定义,看起来我无法在"持续部署"中配置我的两个版本管道,并且仍然使用相同的构建定义作为工件源.

任何人都知道如何为多个版本定义共享相同的构建定义,但只为特定分支启动发布?在定义工件源时,有人知道通过分支过滤的方法吗?

ms-release-management azure-devops azure-pipelines

12
推荐指数
1
解决办法
3568
查看次数

VSTS释放拉取请求构建触发器

我的团队正在使用VSTS构建和发布机制,结合了拉取请求分支安全设置,因此代码只能在拉取请求完成时合并.

我们遇到了一些奇怪的事情,因为当创建一个pull-request(并且生成一个构建来证明提交)时 - 由pull请求触发的这个构建的完成也会间接触发一个release,因为我们有一个release release设置.

这本身可能没问题,但接下来发生的事情就是"完成"拉取请求,另一个构建和发布周期发生!

是否有一种方法可以在拉取请求完成并合并到发布分支时启动VSTS释放触发器?

谢谢!

git azure-devops azure-pipelines azure-pipelines-release-pipeline

12
推荐指数
2
解决办法
7897
查看次数

一个构建管道是否可以将值作为参数发送到它在 Azure DevOps 中触发的下一个管道

我有一个构建管道,假设 A - 在文件夹内存储一个文件(该文件具有在该构建管道中设置的变量值)。此管道 A 触发另一个管道 B,该管道 B 使用发布工件任务将该文件夹发布为工件。但文件夹名称是动态的,因为它是从管道 A 中的该文件中获取的。我需要在触发它时将具有该变量值的文件从管道 A 传递到管道 B。有没有办法在 Azure DevOps 中执行此操作,而不使用 yaml 管道?

我有一组使用经典模式设置的复杂管道,将它们全部转换为 yaml 需要很长时间,所以想知道是否有任何解决办法。

variables azure-devops azure-pipelines

12
推荐指数
2
解决办法
1万
查看次数

Azure DevOps Services\Server 中部署组和环境之间的差异

在 Azure Pipelines 中,我们将部署组和环境作为单独的选项,但它们是否都不想将属于环境的服务器列表添加为一个组。对此的澄清将不胜感激。

azure-devops azure-pipelines azure-devops-deploymentgroups

12
推荐指数
2
解决办法
3903
查看次数

从另一个管道触发 Azure Devops 管道

我在从 Azure DevOps 中的另一个管道触发管道时遇到问题。我有一个 CI 管道,我想在 CI 通过主分支时触发一个部署管道。这在技术上似乎是可行的,但文档不清楚。

我看到以下内容:

# this is being defined in app-ci pipeline
resources:
  pipelines:
  - pipeline: securitylib
    source: security-lib-ci
    trigger: 
      branches:
      - releases/*
      - master
Run Code Online (Sandbox Code Playgroud)

但不清楚 a) 这是否进入触发管道(在我的情况下为 CI 管道)或触发管道(在我的情况下为部署管道)。

也不清楚 thepipelinesource指的是什么,以及我如何找出这些变量?它们都是管道的名称吗?我尝试了各种不同的排列,但似乎没有任何效果。

azure azure-devops azure-pipelines

12
推荐指数
1
解决办法
9533
查看次数