msbuild忽略静态代码分析错误

时间:2016-09-22 18:55:15

标签: visual-studio-2015 msbuild

我想使用一些静态分析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获得相同的行为?

1 个答案:

答案 0 :(得分:0)

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

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

对于StyleCop代码分析:

  1. 安装stylecop.MSbuild
  2. (将waring视为错误)将<StyleCopTreatErrorsAsWarnings>false</StyleCopTreatErrorsAsWarnings>添加到项目文件的PropertyGroup或直接为MSBuild命令指定此参数
  3. Build(项目属性)的设置也基于Configuration和Platform。