【问题标题】:msbuild ignores static code analysis errorsmsbuild 忽略静态代码分析错误
【发布时间】:2016-09-26 09:18:32
【问题描述】:

我想使用一些静态分析 NuGet 库(StyleCop、RefactorEssentials),并且为了强制执行规则,我想使用“将警告视为错误”项目级选项。

在使用 MSBuild 构建解决方案时,我也需要具有相同的行为。 我测试了这样的设置,在 Visual Studio 2015 中,构建按预期失败,但 我无法使用 MSBuild 获得相同的行为。

我尝试运行以下 MSBuild 命令:MSBuild test.sln /t:clean,build /p:RunCodeAnalysis=true 但构建给出了 0 个警告和错误。 此外,在我使用上述 MSBuild 命令构建解决方案后,即使错误仍然存​​在并在错误列表视图中报告,Visual Studio 也会报告构建成功。由于分析器错误,我必须在 Visual Studio 中重建解决方案以使其再次失败。

知道我为什么会有这种行为,我应该怎么做才能从 MSBuild 中获得相同的行为?

【问题讨论】:

    标签: visual-studio-2015 msbuild


    【解决方案1】:

    原因是你没有指定Configuration和Platform,在VS和MSBuild工具中构建的配置和平台不同,所以代码分析规则不同。

    RunCodeAnalysis 参数用于启用代码分析并以特定规则运行代码分析(项目属性=>代码分析,不同的配置和平台有不同的设置)。为此,您可以在项目文件(PropertyGroup)中添加真正的属性或直接为MSbuild命令指定此参数。

    对于 StyleCop 代码分析:

    1. 安装stylecop.MSbuild
    2. (将waring视为错误)将<StyleCopTreatErrorsAsWarnings>false</StyleCopTreatErrorsAsWarnings>添加到项目文件的PropertyGroup或直接为MSBuild命令指定此参数

    Build(项目属性)的设置也基于配置和平台。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    • 2012-10-04
    • 2023-03-25
    相关资源
    最近更新 更多