我将自行开发的构建系统迁移到TFS Build,获取源代码存在一些独特的挑战。最初代码保存在VSS中,并允许代码的各个层独立,每个层都有自己的标签。一个文本文件有五个标签,表示进行最终构建所需的内容,该文件位于"主标签"下。在构建时,读取文件,使用其特定标签和构建的整个源代码树从VSS检索每个层。
如何在各个标签下的不同文件夹中获取源代码并汇总完整版本的源代码?
我查看了默认模板以查看代码是如何检索的,但是当检索到代码时,我是否可以为每个“源设置”条目使用不同的标签,这一点并不清楚。
我的另一个想法是从主模板中调用子模板,但这看起来有点过分。
在TFS Build中,我看到一般的想法是让构建对所有源代码应用标签,然后获得该标签。我还看到我可以在默认模板的Build Process部分中指定一个标签。
答案 0 :(得分: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服务器进行依赖关系管理,或者确实创建多个构建定义,并使用可选的主定义“抓取”所有输出个人建设。这基本上就是实验室管理模板的功能。