Ну, вы также можете использовать REST API api-version=3.2
для обновления сопоставлений источников в TFS 2017 U3.
Вы можете использовать ниже образец PowerShell, чтобы добавить / обновить исходное сопоставление:
Param(
[string]$collectionurl = "http://tfs2017-test:8080/tfs/DefaultCollection",
[string]$project = "ProjectName",
[string]$definitionid = "6",
[string]$user = "Domainusername",
[string]$token = "Password"
)
# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
#Get resonse of the build definition
$defurl = "$collectionurl/$project/_apis/build/definitions/$($definitionid)?api-version=3.2"
$definition = Invoke-RestMethod -Uri $defurl -Method Get -UseDefaultCredential -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
#Set repository.properties, source mapping for example:
$definition.repository.properties.tfvcMapping = '{"mappings":[{"serverPath":"$/ScrumProject/Dev","mappingType":"map","localPath":"\"}]}'
$json = @($definition) | ConvertTo-Json -Depth 99
#Update build definition
$updatedef = Invoke-RestMethod -Uri $defurl -Method Put -Body $json -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
Вы также можете использовать TFS BuildHttpClient для обновления определения сборки, обратитесь к этому потоку за подробностями: https://serverfault.com/questions/799607/tfs-buildhttpclient-updatedefinition-c-example