Continuous integration 在VST中显示代码分析警告

Continuous integration 在VST中显示代码分析警告,continuous-integration,azure-devops,code-analysis,Continuous Integration,Azure Devops,Code Analysis,我已经完成了Visual Studio团队服务构建。我正在为我的解决方案使用“MSBuild”生成步骤,在生成日志中,它显示了999多行以##[警告]开头的代码: 2017-11-09T13:52:34.7970784Z##[警告]myfilename.cs(753,17):警告CA2200:重新抛出捕获的异常更改堆栈信息 在将“system.debug”设置为true的情况下构建时,我们还看到vso解析这些警告,日志中的999+行显示如下: 2017-11-15T12:30:40.196496

我已经完成了Visual Studio团队服务构建。我正在为我的解决方案使用“MSBuild”生成步骤,在生成日志中,它显示了999多行以
##[警告]
开头的代码:

2017-11-09T13:52:34.7970784Z##[警告]myfilename.cs(753,17):警告CA2200:重新抛出捕获的异常更改堆栈信息

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

2017-11-15T12:30:40.1964968Z##[警告]myfilename.cs(28,33):警告CS0109:成员“Invoice.columnpoptions”未隐藏可访问的成员。新关键字不是必需的。
2017-11-15T12:30:40.1964968Z###[调试]已处理:##vso[task.logissue type=Warning;sourcepath=myfilename.cs;linenumber=28;columnnumber=33;code=CS0109;]成员“XXX”未隐藏可访问的成员。新关键字不是必需的

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


是的,仅在生成摘要的问题部分显示生成中的部分警告

解决方法是,您可以通过(
##vso[task.uploadsummary]本地文件路径
)上传代码分析结果文件(xml),内容应添加到构建/发布摘要(链接到相关更改部分的工作项下方)

  • 添加Powershell任务
  • 调用日志记录命令上载代码分析结果
  • 例如:

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


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

    在与VST合作几个月后,我的经验如下:

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

    当与基线相比出现更多警告时,我们已开始使用以使生成失败。

    没有名为
    …CodeAnalysisLog.xml的文件。
    。我还试图通过传递
    /p:CodeAnalysisLogFile=MyXmlReport.xml
    来强制此文件,但没有成功。我似乎遇到了以下错误:。能否在OneDrive上共享详细的生成日志?(将system.debug变量设置为true并排队构建)经过一些尝试和错误之后,我用xml输出解决了这个问题(我把构建警告与静态分析输出混淆了)。但是,在上载XML时,它会尝试将XML显示为HTML。至少可以说,输出不是很好。我想我们需要将这些XML文件转换成可以嵌入到构建概述中的漂亮HTML?(XSLT?@bouke)我认为问题部分不能显示太多内容,所以它只显示警告的第一部分,换句话说,如果构建的警告(包括代码分析警告)较少,它将显示在构建摘要的问题部分。是的,输出不好,你需要做一些从XML文件到一个好的HTML的转换,你可以打开一个新的线程来讨论如何将XML转换成一个好的HTML。另一方面,由于原来的问题已经解决,你可以接受这个答案和答案。