如何从 SonarLint CLI 捕获 C# 问题

How to capture C# Issues from SonarLint CLI

我需要使用 SonarLint for CommandLine 工具 (sonarlint-cli-2.1-RC1) 分析 C# 源代码。

我期待与 SonarScanner (sonar-scanner-3.0.3.778-windows & sonarqube-6.5) 一样捕获一组问题,它记录为:No要显示的问题(分析了 26 个文件)

当我使用 -u 调用 SonarLint 时,它记录为:插件 csharp 与 SonarLint 不兼容。略过

但是在SonarLint for CommandLine官网显示: 支持哪些语言? - 开箱即用,SonarLint CLI 将分析 Java、Java 脚本、PHP 和 Python 源文件。如果将 SonarLint CLI 绑定到 SonarQube 服务器,则将下载并执行服务器中安装的其他 SonarSource 分析器,以及您的自定义规则。 http://www.sonarlint.org/commandline/#FAQ

请指教

错误消息正确,SonarC# 和 SonarVB.NET 不受 SonarLint CLI 支持。要分析 .NET 项目,您需要为 Visual Studio 使用 SonarLint,或为 MsBuild 使用 Scanner。

.NET(C# 和 VB.NET)项目需要使用 C#/VB.NET 编译器 (Roslyn) 进行编译,该编译器执行我们的代码分析器。我们基本上挂接到 Roslyn 并使用其 API 分析代码。这就是 MsBuild 分析是 multi-step process 的原因,您可以在其中执行多个命令来分析您的项目。

非.NET语言的分析器,如Java、C++、Python等,都有自己的分析器,不需要额外的步骤,SonarLint CLI很容易支持.

两种方法各有利弊。要编写 Roslyn 分析器,您不必创建语言解析器,只需使用现有的基础设施(这非常好),但是,您需要执行编译器。非 .NET 分析器是独立的,没有编译器依赖性,但有些功能更难实现 - 例如分析未在一个文件中声明的 类。