代码之家  ›  专栏  ›  技术社区  ›  Ph0b0x

如何使用SonarQube分析在Azure DevOps管道上从构建解决方案步骤中排除项目

  •  0
  • Ph0b0x  · 技术社区  · 4 年前

    我有一本书。NET多项目解决方案,如下所示:

    • 解决方案
      • 项目1
      • 项目2
      • 项目4

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

    • 声纳定量分析
      • 使用NuGet 4.4.1
      • NuGet还原
      • 准备分析声纳qube
      • 构建解决方案
      • 测试组件
      • 运行代码分析
      • 发布质量关卡结果

    我的问题是构建解决方案步骤。我的一些项目是我想从这一步中排除的报告或sql项目,它们确实导致构建失败。我一直在网上搜索,并尝试了以下几种方法:

    1. 在解决方案中创建一个新配置,其中一些项目设置为不生成

    2. 增加“-目标:项目1;项目2;”(这导致管道出现错误)

    我尝试过很多其他的事情,但这些都不一定是记录在案的,也没有运气。将某些解决方案成功配置为从Quanalysis中排除任何人。网络解决方案?

    0 回复  |  直到 4 年前
        1
  •  0
  •   Rogerio Schmitt    4 年前

    MSBUILD 每个构建只接受一个项目规范,您将需要有多个步骤,每个构建一个特定的项目。

    假设您只想构建项目1和项目2,并且您正在使用 .Net Core task .

    你需要有两个这样的步骤:

    - task: DotNetCoreCLI@2
      inputs:
        command: 'build'
        projects: '**/*Project1.csproj'
    
    - task: DotNetCoreCLI@2
      inputs:
        command: 'build'
        projects: '**/*Project2.csproj'
    
        2
  •  0
  •   Jim Xu    4 年前

    如果要从使用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"
        ]
      }
    }
    

    此外,您还可以使用。Net的核心任务是按照@rogerio所说的一个接一个地构建项目。但是如果你的笔记。净核心或。NET标准构建依赖于NuGet软件包,请确保添加此步骤的两个副本:一个使用restore命令,另一个使用build命令。

    推荐文章