VSTS Windows文件复制变量不起作用?

时间:2018-04-18 20:32:31

标签: azure-devops azure-pipelines-release-pipeline

我正在尝试通过私有代理在VSTS上的部署步骤中运行“Windows机器文件复制”任务。

在阅读https://docs.microsoft.com/en-us/vsts/build-release/tasks/deploy/windows-machine-file-copy?view=vsts处的文档时,“来源”参数部分显示:

  

您可以使用预定义的系统变量,例如$(Build.Repository.LocalPath)(代理计算机上的工作文件夹),这样可以轻松地在承载自动化的计算机上指定构建工件的位置剂。

当我尝试使用那个确切的变量(因为我真的想要复制最新的源文件)时:

Screenshot 运行任务时出现以下错误:

  

[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目录。

1 个答案:

答案 0 :(得分:1)

我可以在你的问题上看到你在一个版本上做这个,基于C:\ agent_work \ r1 \ a \ $(Build.Repository.LocalPath),其中r1是一个版本。

基于release variable documentation,$(Build.Repository.LocalPath)不适用于发布。

您应该使用其中一个版本变量,例如$(System.DefaultWorkingDirectory)\工件名称