【发布时间】:2018-05-04 10:27:40
【问题描述】:
如何避免在解决方案级别在 TFS 构建上运行代码分析?
我知道我可以在项目级别执行此操作,但我的 C# 解决方案中有 200 多个项目,如果可能,我想关闭解决方案级别的代码分析。
我仍然需要在开发者机器上运行代码分析。
我想通过不在特定 TFS 构建上运行代码分析来节省时间(我们在单独的构建管道上使用 SonarQube 进行代码分析,因此我们不需要 TFS 构建来进行自己的代码分析)
我在我的 MSBuild 参数中尝试了以下内容:
/p:RunCodeAnalysis=false
/p:RunCodeAnalysis=Never
(这是使用默认的 TfcvTemplate.12.xaml)
但即使进行了这些更改,我仍然可以从构建日志中看到代码分析仍在发生:
csc.exe /noconfig /nowarn:1701,1702 /nostdlib+ /errorreport:prompt /warn:4 /define:TRACE /highentropyva+
/debug:pdbonly /optimize+ /out:obj\Release\xyx.dll
/ruleset:"..\Rule Sets\MinimumRecommendedRules.ruleset"
/subsystemversion:6.00 /target:library /utf8output
xyz.cs
我使用的完整 MSBuild 参数是:
/m /tv:14.0 /p:RunCodeAnalysis=false /p:GenerateProjectSpecificOutputFolder=True
我正在使用工具版本 14 和 Microsoft.Compilers NuGet 包,以在我们的 TFS 2013 构建服务器上允许 C#6。
有没有办法避免在解决方案级别运行代码分析,只使用 TFS2013 构建定义中的 MSBuild 参数?
【问题讨论】:
-
RunCodeAnalysis=false将转向旧的 fxcop 风格版本的代码分析。关闭 Roslyn 分析器有点困难:github.com/DotNetAnalyzers/StyleCopAnalyzers/issues/1711
标签: msbuild tfsbuild roslyn fxcop