2015-04-30 30 views
1

我正在将本土构建系统迁移到TFS构建版,并且获取源代码有一些独特的挑战。最初代码保存在VSS中,并允许各层代码独立,每一层都有自己的标签。一个文本文件有五个标签,表示进行最终构建所需的内容,并且此文件位于“主标签”下。在编译时读取文件,每一层都使用其特定标签从VSS中检索,并构建完整的源代码树。TFS构建 - 使用不同标签获取部分源代码

我该如何才能在各个标签下的不同文件夹中获取源代码并为完整构建汇编源代码?

我查看了默认模板,看看代码是如何检索的,但是不清楚我是否可以在检索代码时为每个Source Settings条目使用不同的标签。

我的另一个想法是从主模板调用子模板,但这真的好像过度杀伤。

在TFS构建中,我看到一般的想法是让构建将标签应用于所有源代码,然后获取该标签。我还看到,我可以在默认模板的构建过程部分中指定一个标签。

+0

这非常让我想起使用Clearcase中的配置规范。 –

回答

0

Team Build假设一切都将在之下一个标签。但是该标签可以包含不同版本的文件夹,因此您可以创建一个包含所有不同版本文件的主标签,而不是“主文本文件”。 这是一个非常罕见的做法但它应该工作:

tf label MasterLabel $/Project/FolderA /recursive /version:c1 
tf label MasterLabel $/Project/FolderB /recursive /version:c50 
tf label MasterLabel $/Project/FolderC /recursive /version:c100 

只要路径你申请的标签,不重叠,它应该工作。

要获得来源,用途:

tf get /resursive /version:LMasterLabel 

一个更好的办法来做到这一点,将是或者使用的NuGet包打包应用程序和使用的依赖管理的NuGet服务器或确实创建多个构建定义与一个可选的主定义“抓取”各个构建的所有输出。这基本上就是实验室管理模板的功能。