我们希望拒绝违反自定义静态代码规则的签入。因此,我们定义了一个Gated Checkin构建,并将“执行代码分析”设置为“AsConfigured”。
当我在本地构建解决方案时,使用与Gated Check in build中定义的相同配置和目标,没有错误。但是Gated Checkin构建似乎忽略了我们在源代码中定义的任何[SuppressMessage]属性,从而报告错误。
Gated checkin build不会忽略GlobalSuppressions文件中定义的[SuppressMessage]属性。
还有其他人有这个问题吗?
答案 0 :(得分:3)
当你说你在本地构建时很好,你是用Visual Studio构建的,还是用MSBuild构建的?
TFS Build使用MSBuild构建项目,您应该能够通过查看构建报告中的日志来查看构建期间运行的MSBuild命令(如果将详细级别设置为“正常”)。
要调查此问题,我建议您使用此MSBuild命令在本地构建解决方案(您需要更改计算机上解决方案的路径,而不是构建计算机上使用的路径),它将可能会给你相同的错误,这表明使用MSBuild构建和使用Visual Studio构建之间存在差异。然后我们可以查看MSBuild命令,看看为什么它的行为方式不同。
希望这有帮助。