2016-02-02 77 views
2

在我的vNext-build-definition中,我添加了一個新的構建步驟:「cURL上傳文件」。
在使用URL和可選參數的語法稍微花點時間後,我終於實現了它,以便在正確的目標文件夾中訪問我的sftp服務器 - 此連接工作至今。
但當捲曲試圖啓動上傳日誌只是說:TFS 2015 Build vNext:cURL-FTP上傳越野車或難以使用

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 

隨着「越野車」我的意思是在構建步驟的定義選擇文件,無需用戶任何幫助的方式:
嘗試1 :
我可以通過「...」輕鬆選擇文件 - 按鈕 - 我可以瀏覽我的存儲庫的文件夾結構並選擇一個文件。感覺非常正常。該文件夾然後寫入文本框「文件」 - 但沒有雙引號,雖然它包含空格...這會遇到錯誤,因爲cURL預計不會理解文件夾名稱。
嘗試2:
然後,我自己添加了雙引號,但仍然出現上述錯誤。
嘗試3:
然後我嘗試了語法**/myfile.txt
Ahaa,這實際上起作用!!但是這會上傳所有名爲myfile.txt的文件夾中的所有文件(日誌告訴我一些有趣的事情:curl被調用使用另一種帶花括號的語法:{「完整路徑/到/我的/文件名」})

以防萬一tfs-dev-團隊的某人讀到:另一個無意義的鏈接是底部的「更多信息」的步驟定義。它導致了一個話題「部署:Azure PowerShell」 - 這與FTP上傳無關,它的內容只是「此主題尚未撰寫..」:-(

因此,我現在結束了以下可能性
使用語法**/filename(如果你能與缺點,即在具有相同文件名回購的所有子文件夾中的所有文件將被上傳過,所以最好把你的文件名獨特!)
2.之前使用另一個構建步驟,將文件複製或移動到回購的根文件夾,以便僅在「文件」-TextBox中使用文件名稱witho ut路徑信息。
3.忘記捲曲積聚步驟:使用的WinSCP用臨時腳本,並用一個批處理腳本步驟(http://winscp.net/eng/docs/guide_automation):-)


運行(上面提到的語法與大括號是對我來說沒用,因爲它強制我包含構建代理的整個路徑,我不能在我的回購庫中使用相對路徑。)


有什麼更好的想法?

+0

我也遇到過其他VSO代理任務的一些問題。您應該將所有這些問題都歸檔到vso-agent-tasks GitHub頁面上,以便Microsoft可以改進它們。 https://github.com/Microsoft/vso-agent-tasks/tree/master/Tasks/cURLUploader – chief7

回答

0

我可以用TFS 2015年UPDATE1 +捲曲7.47.0重現在我身邊的情景:

  1. 如果文件夾包含空格,像您的情況Another Subfolder,捲曲都不能認呢,我們」會得到錯誤:curl: Can't open 'C:/agent/_work/xx/s/Another'!

  2. 如果我們使用語法**/myfile.txt,我們將獲取名爲myfile.txt的工作區中的所有文件。

但是,如果我們把文件其名稱不包含空格的文件夾下,我們不會得到錯誤curl: Can't open 'C:/agent/_work/xx/s/Another'!,所以你可以創建一個像AnotherSubfolder一個新的文件夾,並把文件需要複製到此文件夾下,然後您可以使用整個路徑。

+0

我有一個類似的問題,我必須複製的文件包括一些文件夾名稱中包含空格。 不幸的是,我不能重命名它們,因爲它們位於app.publish文件夾內幷包含clickonce部署文件。 在這種情況下,如何使它工作? –