10

我试图让 msbuild 像在 VS 中一样输出代码分析信息。我在 VS 中有一个名为“CodeAnalysis”的项目配置,用于在构建时运行代码分析(使用最小规则集)。无论如何,这在 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
4

3 回答 3

9

默认情况下,MSBuild 使用项目文件中配置的值,但您可以msbuild使用参数在命令行上覆盖它

/p:RunCodeAnalysis=true

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

/p:RunCodeAnalysis=false

禁用代码分析。

也可以看看:

于 2013-01-08T16:21:35.893 回答
1

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

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

于 2012-03-19T12:46:44.590 回答
0

一旦我遇到同样的问题,我首先会获取一个(过于)冗长的日志并将其传送到一个我可以检查的文件:

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

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

<RunCodeAnalysisOnThisProject>true</RunCodeAnalysisOnThisProject>

这为我做了。

于 2016-06-29T11:45:19.053 回答