TFS 2015 Build vNext:卷曲FTP上载错误或难以使用

TFS 2015 Build vNext:卷曲FTP上载错误或难以使用,tfs,build,ftp,tfs-2015,Tfs,Build,Ftp,Tfs 2015,在我的vNext构建定义中,我添加了一个新的构建步骤:“cURL Upload Files”在使用URL的语法和可选参数后,我最终完成了它,以到达正确的目标文件夹中的sftp服务器-到目前为止连接正常。 但是当cURL试图开始上传时,日志只会说: curl: Can't open 'my-Subfolder/Another Subfolder/myfile.txt'! curl: try 'curl --help' or 'curl --manual' for more information

在我的vNext构建定义中,我添加了一个新的构建步骤:“cURL Upload Files
在使用URL的语法和可选参数后,我最终完成了它,以到达正确的目标文件夹中的sftp服务器-到目前为止连接正常。
但是当cURL试图开始上传时,日志只会说:

curl: Can't open 'my-Subfolder/Another Subfolder/myfile.txt'!
curl: try 'curl --help' or 'curl --manual' for more information
Unexpected exitcode 26 returned by tool curl.exe
“buggy”指的是在构建步骤的定义中选择文件的方式,用户无需任何帮助:
尝试1:
我可以通过“…”按钮轻松选择文件-我可以浏览存储库的文件夹结构并选择文件。感觉很正常。文件夹随后被写入文本框“文件”-但不带双引号,尽管它包含空格。。。这会发生错误,因为cURL不理解文件夹名称。
请尝试2:
然后我自己添加了双引号,但仍然出现上面的错误。
尝试3:
然后我尝试了语法
**/myfile.txt

啊哈,这真的管用!!。。。但是这会上载所有名为myfile.txt的文件夹中的所有文件(日志告诉我一些有趣的事情:curl是通过使用另一种带有花括号的语法来调用的:{“complete path/to/my/filename”})

以防tfs开发团队的某个人读到:另一个毫无意义的链接是步骤定义底部的“更多信息”。它引出了一个主题“部署:Azure PowerShell”-与FTP上载无关,其内容只是“此主题尚未编写…”:-(

因此,我现在总结了以下可能性:
1.使用语法
**/filename
(如果您可以接受这样一个缺点,即将上载repo所有子文件夹中具有相同文件名的所有文件,那么最好保持文件名唯一!)
2。在之前使用另一个构建步骤,并将文件复制或移动到repo的根文件夹中,以便仅在“文件”文本框中使用文件名,而不使用路径信息。
3.忘记cURL构建步骤:将WinSCP与临时脚本一起使用,并与批处理脚本一起运行-step():-)


(上面提到的带花括号的语法对我来说是无用的,因为它迫使我包含构建代理上的整个路径,我不能在repo中使用相对路径。)



还有更好的想法吗?

我可以用TFS 2015 update1+curl 7.47.0重现您的情景:

  • 如果文件夹中包含空格,如场景中的另一个子文件夹
    ,curl无法识别它,我们将得到错误:
    curl:cannotopen'C:/agent/\u work/xx/s/other'

  • 如果我们使用语法**/myfile.txt,我们将获得工作区中所有名为myfile.txt的文件


  • 但是,如果我们将文件放在名称不包含空格的文件夹下,就不会出现错误
    curl:cannotopen'C:/agent/_work/xx/s/other',因此您可以考虑创建一个新的文件夹,如“代码> AnotherSubfolder < /Cord>”,并将文件复制到该文件夹下,然后可以使用整个路径。p> 我在其他VSO代理任务中也遇到了一些问题。您应该在vso代理任务GitHub页面上提交所有这些问题,以便Microsoft能够改进它们。我有一个类似的问题,我必须复制的文件包括一些名称中带有空格的文件夹。很遗憾,我无法重命名它们,因为它们位于app.publish文件夹中,并且包含clickonce部署文件。在这种情况下,如何使其工作?