TFS2015脚本只能部署(而非构建)吗?

时间:2018-08-23 19:32:38

标签: tfs deployment build tfs2015

我对使用TFS2015编写脚本世界是陌生的。我创建了一个脚本,该脚本在解决方案(这是一个相当大的解决方案)中构建所有项目,并将其放入共享文件夹(每个项目都有自己的子文件夹)中。

我想为每个项目创建一个单独的脚本,该脚本仅从共享中复制bin文件夹并将其粘贴到我的测试环境中。我很少需要部署所有内容,因此这个想法是一个构建...多个部署。

但是,当我使用Copy Files步骤运行部署脚本时,它正在执行另一个构建。尽管它复制了我期望的文件,但它是在完整构建后为该构建创建文件夹结构的。

我能够执行Copy Files步骤而不进行构建吗?

以下是我的脚本当前正在执行的步骤:

enter image description here

如您所见,只有一个步骤(复制文件),但是它仍然执行Get sources并将所有内容复制到构建框上的新文件夹中(如下所示(每次运行时,数字都会不断增加)的脚本):

enter image description here

我只想将文件从Source复制到Target,而不要进行构建或Get Sources

1 个答案:

答案 0 :(得分:1)

您似乎仍在使用TFS 2015 RTM或Update1。如果将其与该版本引入的新构建系统的生命周期进行比较,这已经是相当老的技术了。

TFS 2015 update 2 has introduced a similar system to the Build pipelines to orchestrate Releases。这不需要您映射任何工作区或git存储库,并且可以对构建的工件或仅对文件共享的内容进行操作。

enter image description here

有意义的是,Build必须构建某些东西,而为了构建某些东西,它必须获取要构建的东西。如果您实际上不是在构建某些东西,则可能是在部署,发布或打包其他东西。因此,Build和Release管道之间的区别。

TFS 2017+可以选择disable the syncing of sources。主要是为了使人们能够以创造性的方式(例如,调用git.exe的自定义Powershell脚本)来获取源代码。

我的主要建议是升级到TFS 2018 update 3或至少升级到TFS 2017 update 3.1,最坏的情况是升级到TFS 2015 update 4.1versions older than update 2015.4.1 have a known XSS scripting security bug可能足以说服您的组织执行此更新的事实。

除非您为该选项提供一个解决方案,否则:

仅一次提交即可将您的构建定义链接到git存储库(如果我没记错的话,同步空的Git存储库时2015代理仍然崩溃),或者将其链接到TFVC存储库并设置工作区设置以隐藏所有内容。实质上,这将导致构建在调用Powershell脚本之前同步一个可以缓存的空文件夹。