Continuous integration 在VSTS项目生成中运行代码分析器

Continuous integration 在VSTS项目生成中运行代码分析器,continuous-integration,azure-devops,code-analysis,Continuous Integration,Azure Devops,Code Analysis,在VSTS(托管TFS)中,我有一个使用MSBuild的生成定义。我真正想要的是用任何规则违反检测对请求进行注释。然而,我根本无法让分析仪工作。到目前为止我所做的 在获取生成的一个项目中安装了Microsoft.CodeAnalysis.FXCopAnalyzer 已验证在Visual Studio中运行“分析代码”是否会输出违反规则的行为 所有*.ruleset文件在自托管生成代理上都不可用,因为它只安装了MSBuild(没有完整的Visual Studio)。对于与第1点相同的项目,我还使用

在VSTS(托管TFS)中,我有一个使用MSBuild的生成定义。我真正想要的是用任何规则违反检测对请求进行注释。然而,我根本无法让分析仪工作。到目前为止我所做的

  • 在获取生成的一个项目中安装了Microsoft.CodeAnalysis.FXCopAnalyzer
  • 已验证在Visual Studio中运行“分析代码”是否会输出违反规则的行为
  • 所有
    *.ruleset
    文件在自托管生成代理上都不可用,因为它只安装了MSBuild(没有完整的Visual Studio)。对于与第1点相同的项目,我还使用了自定义规则集
  • 我也在一个托管的构建代理(安装了VS2017)上构建了这个项目,但也没有用

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

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

    您还可以在MSBuild任务的MSBuild参数中指定它:

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

    非常感谢。现在就试试看。对于如何引用通常与Visual Studio一起安装的内置规则集,您有什么建议吗?我可以将它们与我的解决方案捆绑在一起,但我不知道这是否是首选设置?如果规则集名称存在于默认文件夹中(例如
    C:\Program Files(x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\Rule Set
    ),请指定规则集名称:
    /p:RunCodeAnalysis=true;CodeAnalysisRuleSet=AllRules.ruleset
    否则,您可以将其添加到源代码管理并映射到生成代理,如果可以从生成代理计算机访问共享文件夹,则可以。未安装这些规则,因为生成代理上没有Visual Studio,只有生成工具(MSBuild)。因此,选项是1。在生成代理上安装Visual Studio,2。将规则集添加到源代码管理,3。从我的本地机器上复制它们。是否有一种建议的方法来安装规则集,而不作为一个整体安装Visual Studio?好的,谢谢您,我看到日志中现在报告了分析警告。但是它们没有出现在我的构建概述中,有什么建议吗?