【发布时间】:2016-05-05 13:46:09
【问题描述】:
我正在尝试通过 Team Build 系统 (TFS 2013) 自动化我们的主要项目构建 (C++)。 但是,我看到总是构建几个项目,即使没有发生代码更改,而在我的开发机器上使用 VS2013 不会发生这种情况。这会让人有些头疼,因为即使没有真正修改,也会始终生成二进制文件并将其发送给测试团队。
在构建输出中启用“诊断”冗长,我看到这两个项目表现出不同的行为。
在第一个项目中,日志显示所有 .cpp 文件都已重建,因为 .PCH 文件已被修改(尽管没有发生任何更改)。我可以尝试禁用 PCH,但如果可能的话,我真的会避免它。此外,不去寻找错误的根本原因会为一次又一次的错误表示敞开大门。
在第二个项目中,我们有一个生成 .h 文件的预构建步骤。但是,如果未检测到代码更改 (https://msdn.microsoft.com/en-us/library/42x5kfw4.aspx),则不应运行预构建步骤,这在我的开发机器上确实发生了。相反,在构建机器上,会执行预构建步骤,生成 .h,这会强制完全重新构建。
在团队构建设置中,我有“Clean workspace=false”、“Clean build=false”。我还在 MSBuild 设置中尝试了“/p:IncrementalBuild=True”,但这并没有解决问题。
注意 - 我在发帖前已经查看了 Visual Studio Rebuilds unmodified projects 和 VS2010 always rebuilds solution?。
【问题讨论】:
标签: c++ visual-studio-2013 tfsbuild