Azure devops 使用TFS 2015在队列生成时指定代理

Azure devops 使用TFS 2015在队列生成时指定代理,azure-devops,tfsbuild,Azure Devops,Tfsbuild,是否可以配置生成,以便在手动对生成进行排队时设置要在哪个代理上运行生成?您的场景中有什么特殊的设置吗 通常,在VSTS中,您可以在手动对生成排队时选择要直接运行的代理(托管): 更新: 如果您正在使用本地TFS(场景中为TFS 2015)或VST专用代理。然后,您可以在对生成进行排队时设置需求 您还可以使用REST API对生成进行排队,并指定与特定代理匹配的需求: e、 g: 看来这是VSTS 2015上的唯一方法: 没有友好的落水菜单,因此您必须键入它。谢谢您的回答。我在标题中加上了“2

是否可以配置生成,以便在手动对生成进行排队时设置要在哪个代理上运行生成?

您的场景中有什么特殊的设置吗

通常,在VSTS中,您可以在手动对生成排队时选择要直接运行的代理(托管):


更新:

如果您正在使用本地TFS(场景中为TFS 2015)或VST专用代理。然后,您可以在对生成进行排队时设置需求

您还可以使用REST API对生成进行排队,并指定与特定代理匹配的需求:

e、 g:


看来这是VSTS 2015上的唯一方法:


没有友好的落水菜单,因此您必须键入它。

谢谢您的回答。我在标题中加上了“2015”,因为这就是我们所用的。现在看来2017年正迎合这一需求,所以我将推动升级。干杯@BenPower VSTS专门用于Visual Studio团队服务(TFS online),上面的屏幕截图是从VSTS捕获的。根据您的澄清,您正在使用TFS on premise 2015,通常我们称之为TFS 2015。在所有版本的内部部署TFS(vNext构建,包括2015年和2015年之后)上的行为都是相同的。这意味着,即使您升级到TFS 2017,我们也只能设置需求以实现这一目标。是的,对于内部TFS或VST专用代理,我们只能设置需求以匹配您希望与其一起运行的代理。请参阅我的最新答案。
Param(
   [string]$collectionurl = "http://server:8080/tfs/DefaultCollection/",
   [string]$projectName = "0323ScrumTFVC",
   [string]$keepForever = "true",
   [string]$BuildDefinitionId = "1",
   [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 = @"
  {
  "definition": {
    "id": $BuildDefinitionId
  },

  "sourceBranch": "$/0323ScrumTFVC",
  "demands":["Agent.Name -equals AgentNameHere"]
 }           

}
"@

 return $value
}

$json = CreateJsonBody

$uri = "$($collectionurl)/$($projectName)/_apis/build/builds?api-version=2.0"
$result = Invoke-RestMethod -Uri $uri -Method Post -Body $json -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}