6

我一直在使用 Team Foundation Server 2012 为数据仓库项目构建持续集成。在这样做的过程中,我注意到标签的标签和构建并没有产生我期望的结果。在研究该问题时,我能够仅使用 Team Foundation Servers 命令行工具提供的命令行参数来复制该问题。这帮助我消除了构建定义中可能影响构建的任何内容。

所以这是我的问题:我有一个构建在一个构建中构建 2 个不同的项目。它基本上有两个与之关联的 *.SLN 文件。我将标签应用于 2 个资产,每个项目中都有一个。然后我可以执行命令来查看哪些资产具有标签。这样做时,我得到了预期的结果。但是,当我执行命令以获取与此标签关联的资产时,它只会提取两个文件中的 1 个。我已经验证我可以通过删除其中一个项目来提取这两个文件。这是我对构建定义、工作空间和标签的设置

TFS 路径:
$/Dev/Project1
$/Dev/Project2

工作区映射
Project1:C:/SourceControl/Project1
Project2:C:/SourceControl/Project2

DeploymentFolder
Project1: //DevServer/SSIS/Project1
Project2: //DevServer/SSIS/Project2

执行的命令:
应用标签
tf label TestLabel $/DEV/Project1/PackageA.dtsx
tf label TestLabel $/DEV/Project2/PackageA.dtsx

评论标签:
tf labels /format:Detailed LTestLabel

从标签获取:
tf get /r /version:LTestLabel

执行 tf get 命令后,我得到以下结果

部署文件夹: //DevServer/SSIS/Project1 包含文件 PackageA.dtsx
部署文件夹: //DevServer/SSIS/Project2 包含 0 个文件。

似乎对在具有相同标签的不同项目中提取资产存在过滤器或限制。我希望如果我将标签应用于 TFS 中的任何资产,然后拉出标签,它应该允许我检索具有该应用标签的所有资产。有人听说过或经历过吗?提供的任何帮助将不胜感激。

4

1 回答 1

2

当您执行 get 时,您没有指定您所在的(本地)文件夹:因为您没有指定要获取的文件夹,所以它暗示了当前文件夹,相当于:

tf get /recursive /version:Llabelname .

如果要同时获取两者,请指定包含两者的目录,例如:

tf get /recursive /version:Llabelname $/

当然,这假设标签中的两个文件都已映射。

于 2013-12-15T10:25:44.107 回答