【问题标题】:VSO copy to task is failing for unknown reasonVSO 复制到任务失败,原因不明
【发布时间】:2016-01-21 18:43:52
【问题描述】:

我有一个 Visual Studio 团队服务构建设置。到目前为止,我有 2 个步骤。

Visual Studio Build - 这很好用 复制文件 - 这取决于我设置目标路径的位置。

现在我需要将输出的文件部署到我们的应用程序中。有多个任务可以使用:复制文件、复制和发布构建工件、发布构建工件等。

我决定复制文件,因为这似乎是最直接的,毕竟我只需要复制文件。 :)

我的问题是,如果我将目标文件夹更改为 E:\test\ 它会完美地复制所有内容。但是,将目标文件夹设置为应用程序路径:E:\Program Files\App\CI 我收到以下错误消息:

******************************************************************************
Starting task: Copy Files to: E:\Program Files\App\CI
******************************************************************************
Set workingFolder to default: E:\build\agent\tasks\CopyFiles\1.0.9
found 65 files
shell.js: internal error
Error: ENOENT, no such file or directory 'E:\build\agent\tasks\CopyFiles\1.0.9\"E:'
    at Error (native)
    at Object.fs.mkdirSync (fs.js:747:18)
    at mkdirSyncRecursive (E:\build\agent\tasks\CopyFiles\1.0.9\node_modules\shelljs\src\mkdir.js:11:8)
    at mkdirSyncRecursive (E:\build\agent\tasks\CopyFiles\1.0.9\node_modules\shelljs\src\mkdir.js:16:3)
    at mkdirSyncRecursive (E:\build\agent\tasks\CopyFiles\1.0.9\node_modules\shelljs\src\mkdir.js:16:3)
    at mkdirSyncRecursive (E:\build\agent\tasks\CopyFiles\1.0.9\node_modules\shelljs\src\mkdir.js:16:3)
    at mkdirSyncRecursive (E:\build\agent\tasks\CopyFiles\1.0.9\node_modules\shelljs\src\mkdir.js:16:3)
    at E:\build\agent\tasks\CopyFiles\1.0.9\node_modules\shelljs\src\mkdir.js:63:7
    at Array.forEach (native)
    at Object._mkdir (E:\build\agent\tasks\CopyFiles\1.0.9\node_modules\shelljs\src\mkdir.js:48:8)
******************************************************************************
Finishing task: CopyFiles
******************************************************************************
System.Exception: Task CopyFiles failed. This caused the job to fail. Look at the logs for the task for more details.
at Microsoft.TeamFoundation.DistributedTask.Worker.JobRunner.Run(IJobContext jobContext, IJobRequest job, IJobExtension jobExtension, CancellationTokenSource tokenSource)
Worker Worker-56b6a6c0-8c1d-4dc3-b200-385e5c7a7625 finished running job 56b6a6c0-8c1d-4dc3-b200-385e5c7a7625

在错误中它说:

错误:ENOENT,没有这样的文件或目录 'E:\build\agent\tasks\CopyFiles\1.0.9\"E:'

尾随的“E: 向我跳出来,但不知道为什么会这样。对此有什么想法吗?

【问题讨论】:

  • 路径用引号括起来,可能是它没有正确处理带空格的路径。
  • 好电话!虽然它没有用......但是我进行了测试,似乎它不喜欢空格。我试过用单引号和双引号将 & 放在它前面,但没有运气。有什么想法吗?

标签: powershell build azure-devops azure-pipelines


【解决方案1】:

我最后一次看到“复制文件”任务的这个问题是我在目标文件夹路径的开头输入了一个多余的空格。我刚刚又试了一次,输入空格仍然会出现同样的错误。所以你可能需要检查一下,然后再次尝试构建。

【讨论】:

  • 我检查了这个,但没有。似乎是因为我的目标文件夹路径中有一个空格。你知道有什么办法可以逃脱吗?我已经尝试了各种方法来逃离谷歌和这里的空间。
  • 您是否尝试在路径周围加上引号?
  • @ChrisWhisenhunt 路径中的空格不应影响该功能。我尝试了一条在路径中间有空格的路径,它工作正常。由于我使用的复制任务版本仍然是1.0.5,而您使用的是1.0.9,因此我不确定是否是新版本引起的,因为1.0.9中引入了新问题。请参阅此链接:github.com/Microsoft/vso-agent-tasks/issues/1107。当我的任务更新到 1.0.9 时,我会试试这个。
  • @Eddie-MSFT 很高兴知道并感谢您对此的研究,非常感谢。我会留意那个线程。谢谢!
  • @ChrisWhisenhunt 我的构建代理刚刚更新,复制文件任务也失败了,现在目标文件夹中有空间(复制任务版本仍然是 1.0.5)。我已经帮助您在 Microsoft Connect 页面上提交了反馈,详情请参阅此链接:connect.microsoft.com/VisualStudio/feedback/details/2284012。现在,您可以添加一个 powershell 或批处理步骤来复制您想要的文件。
猜你喜欢
  • 1970-01-01
  • 2010-11-09
  • 1970-01-01
  • 2019-01-21
  • 2022-11-27
  • 2019-06-29
  • 2020-04-06
  • 2018-12-03
相关资源
最近更新 更多