好的,我有几个询问:
1 - 让我们说我有一个引用几个外部项目的解决方案。我想在这些外部项目中引用特定的标签(代表稳定版本)。我知道您可以通过在这些项目上按标签获取特定版本来实现此目的。但是,一旦你完成了这项工作,是否有一种方便的方法来获取整个解决方案,并保留所有特定版本?
最终,我想做一个Get并让它获得适用的最新版本并获得适用的特定版本。在所有项目上单独执行获取似乎很令人沮丧。
2 - 是否可以从标签构建二进制文件?当外部项目是一个不会改变的稳定版本时,仅引用二进制文件是有意义的。当您创建标签并构建它时,它是否会在可以引用的标签的特定位置生成二进制文件?
答案 0 :(得分:0)
关于第一个问题:虽然TFS允许您通过Label获取源,但无法设置绑定到特定路径的特定Label或Changeset的工作空间配置。我唯一能想到的就是创建一个获取最新版本的批处理文件:
tf get $/Project/Sources /Version:T /recusive
tf get $/Project/ComponentA /version:LMyLabelName1 /recursive
tf get $/Project/ComponentB /version:LMyLabelName2 /recursive
前进的方法是publish your external references to a NuGet repository(可以是您自己的),然后配置NuGet以获取特定版本。 CI构建可以将新版本发布到NuGet服务器。 And you can setup your own server so that you don't need to publish all your binaries to a public server
关于第二个问题:是的,您可以在Queue Build屏幕中按标签构建,您可以设置要构建的版本:
您可以指定变更集编号(C ######
),标签(L Labelname
)等。任何版本规范都可以(请参阅commandline docs for a explanation on version specs)。
默认情况下,如果按标签构建,则不会生成简单的可引用名称。我怀疑一些聪明的构建自定义将允许您根据标签名称将构建输出放在预定义的文件夹中,但是没有这样的开箱即用功能。