2016-02-27 38 views
13

我正在將一組特定構建從現有Visual Studio團隊服務項目移動到新項目。不幸的是,我找不到將構建定義從一個項目遷移到另一個項目的方法。似乎沒有導入/導出功能或其他機制。如何將Visual Studio團隊服務構建複製到新項目

有沒有任何方法可以移動這些,而無需手動重新創建新項目中的構建?

回答

3

無法在團隊項目之間複製或同步vnext構建定義模板。構建定義模板僅適用於當前的團隊項目。所以你需要爲每個團隊項目創建一個構建定義模板。

而且還出現了用戶功能要求語音,你可以投票和監視它

VSO建立vnext:股建項目 https://visualstudio.uservoice.com/forums/330519-team-services/suggestions/8468566-vso-build-vnext-share-build-templates-between-pro

之間模板然而,它可以使用API​​來實現,這裏有一個你可以使用的simple tool。(需要在同一個團隊項目集合中)

1

您可以使用REST API來執行此操作。有一個示例here

它顯示瞭如何獲得一個生成定義的JSON響應,並再次使用相同的參考,使項目一個新的,你的願望

2

你可以做類似如下:

$project1Url = "http://tfs:8080/tfs/collection/project1/_apis/build/definitions/$($buildId)?api-version=2.0" 
$obj = Invoke-RestMethod -Uri $project1Url -Method Get -ContentType "application/json" -UseDefaultCredentials 

$obj.project = $null 

#TODO: Update all repository/source control info, too. 

$json = ConvertTo-Json $obj -Depth 3 

$project2Url = "http://tfs:8080/tfs/collection/project2/_apis/build/definitions/?api-version=2.0" 
Invoke-RestMethod -Uri $url -Method Post -Body $json -ContentType "application/json" -UseDefaultCredentials 

要點是,從源項目(projec1)獲取現有的定義,清除項目關係,根據需要設置新的存儲庫信息,將新的def作爲發佈(創建)發送到目標項目(project2)。

+0

構建json負載的示例:http://www.ericksegaar.com/2015/10/16/using-json-via-rest-to-create-build-definitions-in-vso/ – JoeBrockhaus

9

這是現在可以從VSTS中生成定義web用戶界面:

See screenshot here

相關問題