我们在我们的内部服务器上安装了2017,我们在沙箱环境中构建了我们的.NET代码,但是我们希望能够手动或以自动化的方式远程推出新的构建定义或更新(对我们的客户端-生产服务器)?
发布于 2018-02-14 05:51:54
是的,您可以在TFS 2017中导出和导入构建定义。
在这种情况下,如果您拥有从远程服务器访问和创建构建定义的权限,那么您可以直接导出/导入构建定义。参考下面的截图。
此外,您还可以使用扩展导出/导入生成定义。
要更新构建定义,可以使用REST (更新生成定义)和PUT方法:
例如:
PUT http://server:8080/tfs/DefaultCollection/Project/_apis/build/definitions/29?api-version=2.0
Content-Type: application/json
{json body here}更新:
您可以参考下面的示例来更新构建定义:
Param(
[string]$baseurl = "http://server:8080/tfs/Collection",
[string]$projectName = "ProjectName",
[string]$builddefinitionID = "29",
[string]$keepForever = "true",
[string]$user = "username",
[string]$token = "password"
)
# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
function CreateJsonBody
{
$value = @"
{
body here
}
"@
return $value
}
$json = CreateJsonBody
$uri = "$baseurl/$($projectName)/_apis/build/definitions/$($builddefinitionID)?api-version=2.0"
$result = Invoke-RestMethod -Uri $uri -Method Put -Body $json -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}

https://stackoverflow.com/questions/48778485
复制相似问题