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

Why are some SonarQube rules not present in SonarLint in Visual Studio

我不明白 SonarLint 和 SonarQube 之间的以下区别。

我的 sonarLint 配置丢失了吗?

见下面的印刷品

Compare rules from SonarQube to SonarLint

谢谢大家!

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

SLVS使用嵌入VSIX的SonarC#版本; S4MSB 使用嵌入在 SonarQube SonarC# 插件中的版本。如果使用不同版本的 SonarC# 分析器,您可能会看到报告的问题集略有不同,因为分析器正在积极开发中(例如,正在添加新规则、误报和错误正在修复)。

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

默认情况下禁用屏幕截图中的规则 S1244,因此我猜测您的 SonarQube 项目正在使用已启用该规则的自定义质量配置文件。

如果您在 "standalone mode" 中使用 SLVS(即独立于 SonarQube/SonarCloud),您可以使用规则集配置您想要 运行 的规则。

如果您在 SonarQube/SonarCloud 上有一个项目并且想在 SLVS 中本地使用同一组规则,您可以使用 "connected mode" 到 link 你的 VS 解决方案到你的 SonarQube/SonarCloud 来自 VS 团队资源管理器的项目。 SLVS 将从质量配置文件生成规则集,并在您的解决方案中配置项目以使用生成的规则集。