在 VSTS 中显示代码分析警告

Show Code Analysis warnings in VSTS

我的 Visual Studio 团队服务构建。我正在为我的解决方案使用 "MSBuild" 构建步骤,在构建日志中它显示了 999 多行以 ##[warning]:

开头

2017-11-09T13:52:34.7970784Z ##[warning]myfilename.cs(753,17): Warning CA2200: Re-throwing caught exception changes stack information.

在将 "system.debug" 设置为 true 的情况下构建时,我们还看到 vso 解析了这些警告,并且日志中的 999+ 行显示如下:

2017-11-15T12:30:40.1964968Z ##[warning]myfilename.cs(28,33): Warning CS0109: The member 'Invoice.ColumnOptions' does not hide an accessible member. The new keyword is not required.
2017-11-15T12:30:40.1964968Z ##[debug]Processed: ##vso[task.logissue type=Warning;sourcepath=myfilename.cs;linenumber=28;columnnumber=33;code=CS0109;]The member 'XXX' does not hide an accessible member. The new keyword is not required.

我希望 999+ 静态分析警告会出现在构建概述中的某个地方(即 https://MYSITE.visualstudio.com/MYPROJECT/_build/index?buildId=XXX&_a=summary&tab=details)。但是它只显示 11 个构建警告,没有别的。另请参见下面的屏幕截图。如何在此构建概览中显示静态代码分析警告?甚至可能是已触发的警告类型的概述?

是的,构建摘要的“问题”部分中仅显示构建中的部分警告。

解决方法是可以通过Logging Commands(##vso[task.uploadsummary]local file path)上传代码分析结果文件(xml),并将内容添加到build/release摘要(在链接到相关更改部分的工作项下方)

  1. 添加 Powershell 任务
  2. 调用logging命令上传代码分析结果

例如:

param(
[string]$p
)
Write-Host "##vso[task.uploadsummary]$p"

参数:

-p $(Build.SourcesDirectory)\WebAppAzureProfile\bin\WebAppAzureProfile.dll.CodeAnalysisLog.xml

使用 VSTS 几个月后,我的经验如下;

  • 代码分析警告将显示在构建摘要中
  • VSTS 将只显示前 11 个警告
  • 因此,如果代码分析警告在 11 个构建警告之后打印,它们将不会显示。

我们已经开始使用 Build Quality Checks 在与基线相比有更多警告时使构建失败。