映射目录中已存在的搁置集文件的 TFS 构建定义

TFS Build Definition to shelveset files already present in a mapped directory

我目前在 TFS 2013 中工作,我正在尝试实现构建定义的一部分,它将根据 VM 中已经存在的 jar 或其他文件创建 Shelveset directory.The 问题是为了要进行添加,必须有一个映射目录。如果文件在 tf add 之后是相同的,那么它不会被检测为挂起的更改。几乎最大的好处是用户可以拉出搁置集并在他们的本地工作区中获取那些 运行 某些自动化所需的文件。所以顺序如下

添加 Jar 文件:tf "add " + """" + BuildDirectory + "\" + ProjectBaseDir + "\" + "\lib*." + """" + “/noignore”+“/recursive”+“/noprompt”+“/lock:None” 添加其他文件:tf "add " + ".*" + " /noignore" + " /recursive" + " /noprompt" 搁置更改:tf "shelve /move /replace /noprompt " + """" + ShelvesetName + """"

如果有点混乱,我深表歉意。有人对使用 tfs 有任何想法或解决方法吗?

根据您的信息,假设您想将构建结果的某些内容添加到搁置集中,然后将搁置集中的搁置集拉取或复制到本地工作区以运行一些自动化。

您可以在构建过程模板中添加InvokeProcess activity 以执行xcopy 命令行将文件从源复制到目标。详情请参考本文示例:Customize Team Build 2010 – Use more complex arguments

或升级到 TFS 2015 以使用 Vnext Build