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