【问题标题】:Gated Checkin build ignores [SuppressMessage] in source门控签入构建忽略源中的 [SuppressMessage]
【发布时间】:2012-02-25 04:22:27
【问题描述】:

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

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

Gated checkin 构建不会忽略 GlobalSuppressions 文件中定义的 [SuppressMessage] 属性。

其他人有这个问题吗?

【问题讨论】:

  • CODE_ANALYSIS 常量未在该配置的项目设置中定义时,我已经看到过这种情况。如果没有定义这个常量,所有[SuppressMessage] 属性都将从编译结果中删除。
  • 我们在构建机器上创建了一个新的工作区后它开始工作了。

标签: visual-studio fxcop checkin static-code-analysis


【解决方案1】:

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

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

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

希望这会有所帮助。

【讨论】:

  • 好主意,我在 Visual Studio 中本地构建。我可以尝试使用 MSBuild 在本地构建解决方案。
猜你喜欢
  • 2011-07-24
  • 1970-01-01
  • 2014-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-23
  • 2014-04-26
  • 2017-02-06
相关资源
最近更新 更多