C# 如何在SonarQube中排除特定于项目的文件

C# 如何在SonarQube中排除特定于项目的文件,c#,sonarqube,C#,Sonarqube,我正在使用SonarQube(撰写本文时为6.7)分析我的C#解决方案。 我现在正努力从复制或完全分析中排除文件 我可以排除以下文件: <Property Name="sonar.exclusions">**/*.Designer.cs</Property> ***.Designer.cs 或复制品,如: <Property Name="sonar.cpd.exclusions">**/*.g.cs,Tests/UITest*.cs</Propert

我正在使用SonarQube(撰写本文时为6.7)分析我的C#解决方案。 我现在正努力从复制或完全分析中排除文件

我可以排除以下文件:

<Property Name="sonar.exclusions">**/*.Designer.cs</Property>
***.Designer.cs
或复制品,如:

<Property Name="sonar.cpd.exclusions">**/*.g.cs,Tests/UITest*.cs</Property>
***/.g.cs,测试/UITest*.cs
正如我所知,排除模式与项目的根相关

现在,如果我有以下设置:

  • 项目A
    • a、 cs
    • b、 cs
  • 项目B
    • a、 cs
    • c、 cs
我只想从项目B中排除文件
a.cs
,但不想从项目a中排除

a.cs
添加到排除项中会将其从两个项目中排除

我发现的唯一方法是使用如下绝对路径:

文件:C:/Development/Solution/Src/Project_B/a.cs

这是可行的,但随后我得到一个警告,即不推荐使用绝对文件路径(通过使用file:),因此在某些时候会将其删除,因此不应使用

我已经尝试过使用相对路径,如:

../Project_B/a.cs

./../Project_B/a.cs

但这并不排除任何文件


是否有任何不推荐的方法可以仅从一个项目中删除文件?

查看SonarQube中的项目B/a.cs。文件头将显示SonarQube理解的路径,例如:


在排除规范中使用该路径的全部或部分。

您可以在项目文件中直接使用SonarQubeExclude MSBuild属性排除整个项目或单个文件。有关更多详细信息,请参阅SonarQube.Integration.Targets文件中的。

关于Src/Project_B/a.cs,由于路径是相对于项目根目录的,这也没有帮助。您找到解决方案了吗?我正在与同样的问题作斗争。:)不幸的是还没有。嗨,安,谢谢你的回答,但问题是,这条路是相对于项目的。所以我在那里看到了a.cs。如果我添加这个,那么这个文件将从项目A和项目B中删除,但我只希望它从项目B中删除。SQ中的整个路径字符串是“A.cs”?是的。我重新构建了我上面写的内容,这里是:路径就是
/a.cs
。对于项目A,
A.cs
具有与问题完全相同的路径。感谢您的提示。这至少可以从SonarQube中完全排除特定于项目的文件:
true
是否还有一种方法可以使用它仅从重复检查中排除文件?还没有找到任何关于这方面的提示。我看到,根据一个人也可以设置项目特定的设置。我尝试了
a.cs
,但这并没有排除重复的文件。虽然如果我使用
sonar.exclusions
文件将从所有分析中排除。