如何在使用MSBuild Scanner时排除单个文件

phi*_*ooo 5 sonarqube sonarqube-scan

我们正在使用SonarQube Scanner for MSBuild(1.1.0.0)并拥有一个包含多个项目的解决方案.

SonarQube.Analysis.xml我们提供给扫描仪cli的解决方案根文件夹中有一个.

<SonarQubeAnalysisProperties  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.sonarsource.com/msbuild/integration/2015/1">
    <Property Name="sonar.cs.opencover.reportsPaths">output/nunit-coverage.xml</Property>
    <Property Name="sonar.cs.nunit.reportsPaths">output/nunit-result.xml</Property>

    <Property Name="sonar.exclusions">Project1/Migrations/*</Property>
    <Property Name="sonar.coverage.exclusions">Project1/Migrations/*</Property>
</SonarQubeAnalysisProperties>
Run Code Online (Sandbox Code Playgroud)

现在问题是:Project1/Migrations/*似乎没有被排除,因为在扫描期间Base dir设置为.../Project1.解决方案中的所有其他项目也会发生同样的情况.结果是这.../Project1/Project1/Migrations/*是一条未知路径.

那么在使用MSBuild Scanner时,从覆盖率和源代码分析中排除整个目录的推荐方法是什么?

Dan*_*bić 4

尝试将排除项放入项目文件 (.csproj) 本身中,例如:

<ItemGroup>
     <SonarQubeSetting Include="sonar.exclusions">
          <Value>**/Migrations/*</Value>
     </SonarQubeSetting>
</ItemGroup>
Run Code Online (Sandbox Code Playgroud)

请参阅附录 2:为 MSBuild 配置 SonarQube 扫描仪