Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/154.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用TFS生成版本头文件 我们正在考虑将自动版本控制添加到正在开发并由Team Foundation Server自动生成的本地C++项目中。理想情况下,我们应该有一个构建开始(从TFS中检出所有最新版本),然后作为第一步,从TFS中获取构建编号,创建一个头文件,然后在继续构建之前将该文件检入。在这样的构建过程中,是否可以执行签出/签入_C++_Tfs - Fatal编程技术网

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

使用TFS生成版本头文件 我们正在考虑将自动版本控制添加到正在开发并由Team Foundation Server自动生成的本地C++项目中。理想情况下,我们应该有一个构建开始(从TFS中检出所有最新版本),然后作为第一步,从TFS中获取构建编号,创建一个头文件,然后在继续构建之前将该文件检入。在这样的构建过程中,是否可以执行签出/签入,c++,tfs,C++,Tfs,我不太熟悉TFS的工作原理和从中检索信息的能力,我们团队中的其他人也不太熟悉,这是我们第一次使用它…有趣的想法,我不知道是否可以通过内置的构建活动来实现这一点(可能不会),您可以使用Invoke Process调出几乎任何您想要的内容,因此您可以尝试调用tf.exe(即,将文件名设置为path\tf.exe,将参数设置为“checkout fullpaththefile”)以签出文件,进行编辑/更改(可能在另一个Invoke Process活动中),然后使用Invoke Process将其签回

我不太熟悉TFS的工作原理和从中检索信息的能力,我们团队中的其他人也不太熟悉,这是我们第一次使用它…

有趣的想法,我不知道是否可以通过内置的构建活动来实现这一点(可能不会),您可以使用Invoke Process调出几乎任何您想要的内容,因此您可以尝试调用tf.exe(即,将文件名设置为path\tf.exe,将参数设置为“checkout fullpaththefile”)以签出文件,进行编辑/更改(可能在另一个Invoke Process活动中),然后使用Invoke Process将其签回


只是把想法扔出去

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

在大容量生成环境中签出/签入时要非常小心。您可能会遇到很多“无法签出已锁定的文件”,以及签入时的冲突,因为在此版本签出之后签入了另一个版本。使用具有大量错误处理和验证以及处理冲突能力的自定义任务。不要在大容量中使用TF.EXE


不要签入版本文件-这将导致无休止的麻烦。相反,使用TFS提供的构建名称动态生成它,并使用它进行编译。我们从(支持C++、C语言和其他语言)开始,并修改它以将构建版本的实际版本字符串作为字符串。


警告:每次创建文件都会中断增量生成。只有当文件不存在时,我们才重新创建该文件,这意味着增量版本的版本号不正确-但我们的“正式”版本不是增量版本,并且具有正确的版本号。

好的,我现在正在处理它,至少有一些想法。我的经理一直坚持要签入生成的标题,以便我们可以回过头来跟踪版本。我也认为这会引起一些问题。正确的跟踪版本的方法是通过标签。任何非门控构建(手动、CI、滚动、计划)都将创建一个标签,您可以通过这种方式查看哪个版本包含哪些内容。