RunCodeAnalysis = true在命令提示符下无效(MSBuild)

时间:2011-10-18 13:46:49

标签: configuration msbuild code-analysis static-code-analysis

我试图让msbuild像在VS中那样输出代码分析信息。我有一个名为" CodeAnalysis"的项目配置。在VS中设置为在构建上运行代码分析(使用最小规则集)。无论如何这在VS中运行良好,但是当我从命令行运行msbuild时它只显示基本的构建警告,并且它根本不运行代码分析。任何人都知道为什么会这样吗?

项目文件中的配置:

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CodeAnalysis|AnyCPU'">
<OutputPath>bin\</OutputPath>
<CodeAnalysisRuleSet>C:\Program Files\Microsoft Visual Studio 10.0\Team Tools\Static Analysis Tools\Rule Sets\MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<RunCodeAnalysis>true</RunCodeAnalysis>

命令行:

msbuild Solution.sln /p:Configuration=CodeAnalysis /t:Rebuild

我也尝试过:

msbuild Solution.sln /p:RunCodeAnalysis=true /t:Rebuild

3 个答案:

答案 0 :(得分:9)

默认情况下,MSBuild使用项目文件中配置的值,但您可以使用参数

msbuild命令行上覆盖它
/p:RunCodeAnalysis=true

始终运行代码分析。反之亦然,使用

/p:RunCodeAnalysis=false

禁用代码分析。

另见:

答案 1 :(得分:1)

您需要在计算机上安装Visual Studio。通过csproj行包含许多脚本:

如果安装了VS(正确版本),它将包含FxCop目标文件,并将为您启动代码分析。

答案 2 :(得分:0)

一旦我遇到同样的问题,我就开始得到一个(过于)详细的日志并将其传送到我可以检查的文件中:

msbuild.exe ProjectFile.csproj /v:diag > bld.log

在该文件中,我注意到跳过了代码分析目标,因为RunCodeAnalysisOnThisProject被评估为true。所以在csproj中,我在第一个属性组下包含了以下行:

<RunCodeAnalysisOnThisProject>true</RunCodeAnalysisOnThisProject>

它为我做了。