【问题标题】:Run Code Analyzers in VSTS project build在 VSTS 项目构建中运行代码分析器
【发布时间】:2017-11-08 20:10:11
【问题描述】:

在 VSTS(托管 TFS)中,我有一个使用 MSBuild 的构建定义。我真正想要的是使用任何规则违规检测来注释拉取请求。但是我根本无法让分析仪工作。到目前为止我做了什么;

  1. 在要构建的项目之一中安装了 Microsoft.CodeAnalysis.FxCopAnalyzers
  2. 已验证在 Visual Studio 中运行“分析代码”会输出违反规则的情况
  3. 所有 *.ruleset 文件在自托管构建代理上不可用,因为它只安装了 MSBuild(没有成熟的 Visual Studio)。对于与第 1 点相同的项目,我还使用了自定义规则集。
  4. 我还在托管的构建代理(安装了 VS2017)上构建了项目,但也无济于事。

通过以上所有内容,VSTS 中的构建日志/构建概述不会列出任何违反规则的行为。我的理解是代码分析应该自动运行,输出应该出现在构建概览页面上(即https://MYSITE.visualstudio.com/MYPROJECT/_build/index?buildId=XXX&_a=summary&tab=details)。

【问题讨论】:

    标签: continuous-integration azure-devops code-analysis


    【解决方案1】:

    代码分析设置基于配置和平台,因此您需要确保使用在构建时启用代码分析的相同配置和平台构建项目。

    您也可以在 MSBuild 任务的 MSBuild Arguments 中指定它:

    /p:RunCodeAnalysis=true;CodeAnalysisRuleSet=..\RuleSets\MyMixedRecommendedRules.ruleset
    

    【讨论】:

    • 谢谢!现在试试看。您对如何引用通常与 Visual Studio 一起安装的内置规则集有什么建议吗?我可以将它们与我的解决方案捆绑在一起,但我不知道这是否是首选设置?
    • 如果规则集名称存在于默认文件夹中(例如C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\Rule Sets),只需指定规则集名称:/p:RunCodeAnalysis=true;CodeAnalysisRuleSet=AllRules.ruleset
    • 否则,您可以将其添加到源代码管理并映射到构建代理,如果可以从构建代理机器访问共享文件夹就可以了。
    • 规则未安装,因为构建代理上没有 Visual Studio,只有构建工具 (MSBuild)。所以选项是 1. 在构建代理上安装 Visual Studio,2. 将规则集添加到源代码控制,3. 从我的本地计算机复制它们。有没有安装规则集的建议方法,而不是整体安装 Visual Studio?
    • 好的,到目前为止,我看到日志中报告了分析警告。但是它们没有出现在我的构建概述中,有什么建议吗?
    猜你喜欢
    • 2016-06-25
    • 2020-05-10
    • 1970-01-01
    • 2011-03-05
    • 2018-04-08
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 2015-11-17
    相关资源
    最近更新 更多