如何强制MSBuild运行代码分析而不重新编译
默认情况下,代码分析仅针对已编译的项目进行。 因此,当我从命令行运行MSBuild时,它仅首次运行代码分析。 在后续调用中,将跳过代码分析。
背景:我想评估CA规则,并查看启用规则时代码中会有多少警告。 为此,我不想重新编译所有内容 – 这需要一些时间 – 但只需重新运行代码分析。 你怎么能实现这个目标?
我正在使用Visual Studio 2013和MSBuild 12.0。
即使明确地开启代码分析也无济于事:
msbuild DesktopBuild.proj /p:RunCodeAnalysis=true
看起来
-
del /s *.lastcodeanalysissucceeded
-
msbuild DesktopBuild.proj /p:RunCodeAnalysis=true
似乎工作。 第一步导致代码分析“忘记”先前的运行,第二步强制它为每个项目运行,即使项目中未启用代码分析。 如果重复运行,则不会再次编译已编译的项目,只重新运行代码分析。
我会尝试使用FxCopCmd.exe
,它通常可以在C:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Static Analysis Tools\FxCop
。 它在Visual Studio中由CodeAnalysis使用,您应该能够使用适当的参数。
只需在项目文件中将CodeAnalysisGenerateSuccessFile
设置为false
。
true false