1

我们希望拒绝违反我们自定义的静态代码规则的签入。因此,我们定义了一个 Gated Checkin 构建,其中“执行代码分析”设置为“AsConfigured”。

当我在本地构建解决方案时,使用为 Gated Check in 构建定义的相同配置和目标,没有错误。但是 Gated Checkin 构建似乎忽略了我们在源代码中定义的任何 [SuppressMessage] 属性,因此报告错误。

门控签入构建不会忽略 GlobalSuppressions 文件中定义的 [SuppressMessage] 属性。

其他人有这个问题吗?

4

1 回答 1

3

当您说您在本地构建良好时,您是从 Visual Studio 构建的,还是使用 MSBuild 构建的?

TFS Build 使用 MSBuild 来构建项目,您应该能够通过查看构建报告中的日志来查看构建期间运行的 MSBuild 命令(如果您将详细级别至少设置为 Normal)。

要调查此问题,我建议您使用此 MSBuild 命令在本地构建解决方案(您需要更改计算机上解决方案的路径,而不是构建计算机上使用的路径),它可能会给您相同的错误,这表明使用 MSBuild 构建和使用 Visual Studio 构建之间存在差异。然后我们可以查看 MSBuild 命令,看看为什么它的行为方式不同。

希望这可以帮助。

于 2012-02-02T14:23:19.850 回答