SonarQube MSBuild 版本警告

SonarQube MSBuild version warning

我是 运行 teamcity 中的 C# 构建,其中包括使用 Sonar 分析我的代码的步骤。

但是,我总是在声纳构建日志中收到警告。

INFO  - SonarAnalyzer.Scanner needs to be executed: true
        ***********************************************************************************
WARN  - *                 Use MSBuild 14 to get the best analysis results                 *
WARN  - * The use of MSBuild 12 or the sonar-scanner to analyze C# projects is DEPRECATED *
WARN  - ***********************************************************************************

现在我知道该项目没有使用 MSBuild 12,代码片段的第一行表明问题是因为使用了 sonar-scanner

如何避免使用声纳扫描仪并使用 MSBuild 14?

以下是我的软件版本:

Teamcity version 10.0.4
SonarQube version 6.2
Sonar C# plugin version 5.5.2.537
sonar-plugin for teamcity compiled from source as of 4th Jan 2017

TeamCity Sonar 插件是只使用声纳扫描仪还是我可以更改的其他东西?

SonarQube TeamCity 插件是社区插件,貌似是直接使用SonarScanner。这并不理想,因为 .NET 项目可能具有复杂的构建设置,并且 SonarScanner 本身无法处理各种 msbuild 目标。 .NET 项目应该由 SonarQube Scanner for MsBuild 分析,它将项目结构处理委托给 MsBuild 本身。

我们没有与 TeamCity 的本地集成,但这不应该阻止您使用 Scanner for MsBuild。这是一个 simple command line application,因此您可以在 TeamCity 命令行构建步骤中调用 beginend 步骤。

顺便说一句,您会看到 msbuild12 警告,因为 SonarScanner 仅通过文件分析运行文件,而 Scanner for MsBuild 使用您指定的任何 msbuild。如果是 MsBuild14,您将受益于 Roslyn 的所有优点,如果是 MsBuild12,我们将通过文件分析返回到文件。