首页 > 解决方案 > 如何从 Azure DevOps Pipeline 上的构建解决方案步骤中排除项目

问题描述

我有一个这样的 .NET 多项目解决方案:

我在我们的 DevOps 环境中有这个解决方案,我创建了一个管道,将使用 SonarQube(声纳云)对其进行分析。此管道包含以下步骤:

我的问题是在构建解决方案步骤上。我的一些项目是我想从这一步中排除的报告或 sql 项目,它们确实使构建失败。我一直在寻找互联网并尝试了一些方法,例如:

  1. 在将某些项目设置为不构建的解决方案中创建新配置

  2. 添加“-target:Project1;Project2;” (这导致了管道上的错误)

我已经尝试了许多其他的事情,这些事情不一定会在没有运气的情况下被记录下来。有没有人在 SonarQube 分析中成功配置构建解决方案以从 .NET 解决方案中排除某些项目?

标签: .netazure-devopsazure-pipelines

解决方案


如果要使用 MSBuild 从构建中排除项目,可以使用解决方案过滤器文件来实现它。更多详情请参考https://docs.microsoft.com/en-us/visualstudio/msbuild/solution-filters?view=vs-2019

{
  "solution": {
    "path": "..\\..\\Documents\\GitHub\\msbuild\\MSBuild.sln",
    "projects": [
      "src\\Build.OM.UnitTests\\Microsoft.Build.Engine.OM.UnitTests.csproj"
    ]
  }
}

此外,您还可以像@rogerio 所说的那样,使用 .Net Core 任务一个一个地构建项目。但请注意,如果您的 .NET Core 或 .NET Standard 构建依赖于 NuGet 包,请确保添加此步骤的两份副本:一份使用 restore 命令,一份使用 build 命令。


推荐阅读