为什么Visual Studio的SonarLint中不存在某些SonarQube规则

时间:2019-11-01 03:30:06

标签: sonarqube sonarlint sonarlint-vs

我不明白SonarLint和SonarQube之间的这种波纹管区别。

我的sonarLint配置丢失了吗?

请参阅下方波纹管

Compare rules from SonarQube to SonarLint

谢谢大家!

1 个答案:

答案 0 :(得分:1)

对于C#代码,VS的SonarLint(“ SLVS”)和MSBuild的扫描仪(“ S4MSB”)均使用SonarC#Roslyn分析器。

SLVS使用VSIX中嵌入的SonarC#版本。 S4MSB使用SonarQube SonarC#插件中嵌入的版本。如果正在积极开发不同版本的SonarC#分析器,则可能会报告一些稍有不同的问题,因为该分析器正在积极开发中(例如,添加了新规则,修复了错误判断和错误)。

更常见的差异源是要运行的规则集的配置。 SLVS和SonarQube使用相同的默认规则集,但这是可配置的。在SonarQube中,规则配置是使用质量配置文件完成的。在VS中,这是使用标准VS规则集机制完成的。

您的屏幕快照中的规则S1244默认情况下处于禁用状态,因此我猜测您的SonarQube项目正在使用启用了该规则的自定义质量配置文件。

如果在“独立模式”下使用SLVS(即独立于SonarQube / SonarCloud),则可以使用规则集配置要运行的规则。

如果您在SonarQube / SonarCloud上有一个项目,并且想在SLVS中本地使用相同的规则集,则可以使用“连接模式”将VS解决方案从VS中的Team Explorer链接到您的SonarQube / SonarCloud项目。 SLVS将根据“质量配置文件”生成一个规则集,并配置解决方案中的项目以使用生成的规则集。