【问题标题】:How do I specify a ruleset from MSBuild如何从 MSBuild 指定规则集
【发布时间】:2011-03-11 20:22:27
【问题描述】:

升级到 VS 2010 MSBUILD /p:RunCodeAnalysis=true 后无法按预期工作

msbuild solution.sln /p:RunCodeAnalysis=true

为了获得更快的构建,我们删除了 DEBUG 构建的 CODE_ANALYSIS 常量。但这意味着在运行上述 msbuild 命令时,它默认所有规则,而不是使用我们在项目属性页面的“代码分析”选项卡中指定的规则集。

所以现在我需要构建发布模式来运行代码分析(定义了 CODE_ANALYSIS 常量):

msbuild solution.sln /p:RunCodeAnalysis=true /p:Configuration=release

然而,这意味着我们在我们的开发机器上获得了一个发布版本。这对我们的设置有一些副作用。

问题:如何从命令行指定规则集。我希望是这样的:

msbuild solution.sln /p:RunCodeAnalysis=true /p:foobar=rules.ruleset

【问题讨论】:

    标签: .net msbuild static-code-analysis


    【解决方案1】:

    您必须使用 CodeAnalysisRuleSet 属性。

    msbuild solution.sln /p:RunCodeAnalysis=true;CodeAnalysisRuleSet=GlobalizationRules.ruleset
    

    这是预定义的规则集列表:

    • AllRules.ruleset
    • BasicCorrectnessRules.ruleset
    • BasicDesignGuidelineRules.ruleset
    • ExtendedCorrectnessRules.ruleset
    • ExtendedDesignGuidelineRules.ruleset
    • GlobalizationRules.ruleset
    • MinimumRecommendedRules.ruleset
    • SecurityRules.ruleset

    【讨论】:

    • 规则集也可以是文件的链接。例如:/p:RunCodeAnalysis=true;CodeAnalysisRuleSet="C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\Rule Sets\ExtendedDesignGuidelineRules.ruleset".
    猜你喜欢
    • 2011-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多