使用TFS生成版本头文件

时间:2013-01-11 16:20:54

标签: c++ tfs

我们正在考虑将自动版本控制添加到由Team Foundation Server开发和自动构建的本机c ++项目中。理想情况下,我们将使用构建开始(从TFS检出所有最新版本),然后作为第一步,从TFS获取构建号,创建头文件,然后在继续构建之前检查该文件。在这样的构建期间,这甚至可以进行结账/办理登机手续吗?

我不太熟悉TFS如何工作以及从中检索信息的能力,我们团队中的其他任何人都不熟悉,这是我们第一次使用它...

3 个答案:

答案 0 :(得分:3)

是的,你可以。这是一个很棒的网站,展示了如何为C#的AssemblyInfo执行此操作,因此您必须稍微调整一下解决方案,但它应该足以显示您完成任务。

在高容量构建环境中使用Check Out / In时要非常小心。您将倾向于获得大量“无法检出已锁定的文件”,并在签入时发生冲突,因为在此构建签出后检入了另一个版本。使用具有大量错误处理和验证的自定义任务以及处理冲突的能力。不要大量使用TF.EXE。

Web Site

答案 1 :(得分:0)

有趣的想法,我不知道是否有可能在内置的构建活动(可能不是)中执行此操作,但是,您可以使用Invoke Process来调用您想要的任何其他内容,因此您可以尝试调用tf.exe(即将FileName设置为 path \ tf.exe并将参数设置为“checkout fullpathtothefile ”)以检出文件,进行编辑/更改(可能在另一个Invoke Process活动中),然后使用Invoke Process将其重新检入。

把想法扔到那里!

答案 2 :(得分:0)

不要检查版本文件 - 这会给麻烦带来麻烦。相反,使用TFS提供的构建名称即时生成它,并使用它进行编译。我们从Wintelect's solution(支持C ++,C#和其他语言)开始,并修改它以将构建的实际版本字符串包含为字符串。

警告:每次创建文件都会破坏增量构建。我们最终只在不存在的情况下重新创建文件,这意味着增量构建具有不正确的构建号 - 但我们的“官方”构建不是增量的,并且具有正确的编号。