2013-01-11 65 views
3

我们正在考虑将自动版本控制添加到由Team Foundation Server开发并自动构建的本机C++项目。理想情况下,我们将开始构建(从TFS中检查所有最新版本),然后作为第一步,从TFS获取内部版本号,创建头文件,然后在继续构建之前将该文件重新签入。在这样的构建过程中,甚至可以做结账/签入?使用TFS生成版本头文件

我不是太熟悉,TFS是如何工作的,并从检索它的信息的能力,也不是别人对我们的团队,这是我们使用它的第一次...

回答

3

是的,你可以。这是一个很棒的网站,展示了如何为Ass​​emblyInfo for C#做这件事,所以你不得不调整一下解决方案,但它应该显示你足够完成你的任务。

在高容量构建环境中对Check Out/In非常小心。你会倾向于得到很多“无法检出已经锁定的文件”,并在检入时发生冲突,因为在此构建检出后检入另一个生成。使用自定义任务进行大量的错误处理和验证以及处理冲突的能力。不要在大量使用TF.EXE。

Web Site

0

有趣的想法,但我不知道是否有可能这样做会损害内置的构建活动(可能不是),但是,您可以使用调用过程调出您想要的任何其他东西,以便您可以尝试调用tf.exe(即将FileName设置为路径 \ tf.exe,并将参数设置为“结帐完整路径文件”)检出文件,执行编辑/更改(可能位于另一个Invoke Process活动中),然后使用Invoke Process检查它回到

只是抛出这个想法!

0

不要签入的版本文件 - 它会引起麻烦没有结束。相反,使用TFS提供的构建名称即时生成它,然后使用它进行编译。我们以Wintelect's solution(支持C++,C#和其他语言)开始,并将其修改为包含构建的实际版本字符串作为字符串。

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

+0

好的,我现在正在研究它,至少有一些想法。我的经理坚持要检查生成的标题,以便我们回顾并跟踪版本。我也认为这会导致一些问题。 –

+0

跟踪版本的正确方法是通过标签。任何非门控构建(手动,CI,滚动,计划)将创建一个标签,并且您可以看到哪个版本包含这种方式。 – Jonathan