【发布时间】:2019-04-11 22:40:54
【问题描述】:
在我的组织中,我们有几个项目。有些在 .Net 4.5 中,有些已迁移到 .Net Core。
所有项目都通过 GOcd 管道进行交付。该管道包括 Sonarqube 分析。
问题在于,sonar 没有分析引用 .NET 4.5 的项目的 c# 代码。 .Net Core 项目按预期进行分析,但 4.5 的项目仅对 javascript、xml、css 等进行分析...而不是实际的 c# 代码。
没有记录错误/警告。有什么想法吗?
详情:
-声纳 7.3
-扫描仪 2.2
-MSBuild 14
编辑1:
实际上有几个警告正在发生,所以我使用 .net 4.5 的默认 asp.net mvc 项目创建了一个空项目,并通过管道运行它......大多数警告是
|15:02:31.034 2>CSC : warning CS8032: An instance of analyzer SonarAnalyzer.Rules.CSharp.SOMETHING cannot be created from C:\Users\TFS-SVC\AppData\Local\Temp\.sonarqube\.static\csharp_7.3.2.6129\SonarAnalyzer-7.3.2.6129.zip\SonarAnalyzer.CSharp.dll :
Could not load file or assembly 'Microsoft.CodeAnalysis, Version=1.3.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies.
The system cannot find the file specified.. [D:\Go\Agent\pipelines\Sonar_Teste_Build\POC.Net4.5andSonarQube\POC.Net4.5andSonarQube.csproj]`
编辑2:
我安装了 Microsoft.CodeAnalysis 1.3.1 和 Microsoft.CodeAnalyses.CSharp 1.3.1 nuget 包,但警告仍然存在,并且只分析了 javascript 和 CSS
【问题讨论】:
-
您能提供给我们任何日志文件或构建日志吗?主要是在 SonarQube 检测到 C# 项目但未扫描时。
-
您使用的是哪个版本的 MSBuild?引用 .NET 4.5 让我觉得您可能正在使用不受支持的 MSBuild 版本(和 C# 编译器)。您需要使用 MSBuild 14(VS 2015 Update 3)或 MSBuild 15(VS 2017)。在您打开的 SonarSource 社区线程中发布完整日志可以帮助我们更快地找到问题。
-
啊,我看到你提到你正在使用 Scanner 2.2 - 如果你想分析 .NET 项目,你必须使用 SonarScanner for MSBuild。
-
ColinM 和 Valeri,我目前无法访问完整的日志,我只知道报告没有提及任何警告/错误...让我动手把它贴出来……我还用我们正在使用的 MsBuild 更新了详细信息 (14)
-
@Leonardo,您需要使用带有 Update 3 的 Visual Studio 2015(或 Build Tools 2015)版本进行构建,或者您需要引用版本等于或更高版本的
Microsoft.Net.Compilersnuget 1.3.2.无论如何,如果您还没有引用Microsoft.Net.Compilers,我强烈建议您在构建机器上更新 Visual Studio。