我正在尝试通过私有代理在VSTS上的部署步骤中运行“Windows机器文件复制”任务。
在阅读https://docs.microsoft.com/en-us/vsts/build-release/tasks/deploy/windows-machine-file-copy?view=vsts处的文档时,“来源”参数部分显示:
您可以使用预定义的系统变量,例如$(Build.Repository.LocalPath)(代理计算机上的工作文件夹),这样可以轻松地在承载自动化的计算机上指定构建工件的位置剂。
当我尝试使用那个确切的变量(因为我真的想要复制最新的源文件)时:
[error]源路径'C:\ agent_work \ r1 \ a \ $(Build.Repository.LocalPath)'不存在。
2018-04-18T05:52:09.2461155Z ==============================================================================
2018-04-18T05:52:09.2461984Z Task : Windows Machine File Copy
2018-04-18T05:52:09.2462630Z Description : Copy files to remote machine(s)
2018-04-18T05:52:09.2463336Z Version : 2.0.4
2018-04-18T05:52:09.2463945Z Author : Microsoft Corporation
2018-04-18T05:52:09.2464620Z Help : [More Information](https://go.microsoft.com/fwlink/?linkid=627415)
2018-04-18T05:52:09.2465332Z ==============================================================================
2018-04-18T05:52:13.1043515Z ##[error]Source path 'C:\agent\_work\r1\a\$(Build.Repository.LocalPath)' does not exist.
2018-04-18T05:52:13.1533941Z ##[section]Finishing: Copy files To Server
2018-04-18T05:52:13.1653576Z ##[section]Finishing: Release
我错过了什么吗?
对于后台,我想做这个Robocopy / WMFC,因为我正在部署一个静态网站,其源头总数约为40gig。我不想首先将整个Build Output复制到artifacts目录,因为它需要太长时间。我需要比复制40 GB数据更快的部署。这是一个遗留站点,我对它的结构方式没有太多的了解。
最终,我正在尝试提取最新的源代码(没有干净,因为拉动40演出太慢了),然后执行RoboCopy / MIRror将仅更改的文件复制到另一台机器上的目标IIS目录。
答案 0 :(得分:1)
我可以在你的问题上看到你在一个版本上做这个,基于C:\ agent_work \ r1 \ a \ $(Build.Repository.LocalPath),其中r1是一个版本。
基于release variable documentation,$(Build.Repository.LocalPath)不适用于发布。
您应该使用其中一个版本变量,例如$(System.DefaultWorkingDirectory)\工件名称