Visual studio 将生成排入tfs 2015/2017队列的批处理脚本

Visual studio 将生成排入tfs 2015/2017队列的批处理脚本,visual-studio,tfs,Visual Studio,Tfs,我试图使用批处理脚本执行构建,我编写了一个,但出现以下错误: 请定义生成定义名称。tfsbuild开始/集合:定义/{Release)/{Project name}/{Build definition name} 如何解决此问题?tfsbuild命令行工具仅适用于XAML版本。对于现代版本,您需要为REST API使用或C#包装器 文档中有很好的示例,但基本上是POST https://{instance}/DefaultCollection/{project}/\u api/build/bui

我试图使用批处理脚本执行构建,我编写了一个,但出现以下错误:

请定义生成定义名称。tfsbuild开始/集合:定义/{Release)/{Project name}/{Build definition name}


如何解决此问题?

tfsbuild命令行工具仅适用于XAML版本。对于现代版本,您需要为REST API使用或C#包装器

文档中有很好的示例,但基本上是
POST https://{instance}/DefaultCollection/{project}/\u api/build/builds?api version={version}

有一个适当的机构:

{
  "definition": {
    "id": 25
  },
  "sourceBranch": "refs/heads/master",
  "parameters": "{\"system.debug\":\"true\",\"BuildConfiguration\":\"debug\",\"BuildPlatform\":\"x64\"}"
}

是的,正如Daniel所说,您需要使用RESTAPI,请参阅

您只需使用下面的PowserShell脚本对构建进行排队(只需相应地替换参数):


您好,我使用您的脚本创建了build.bat文件。运行时出现许多错误。@Ayush它不是.bat脚本,您需要创建一个PowerShell文件,只需复制并通过脚本并相应地替换参数,然后将其保存到
*.ps1
文件中。然后运行PS脚本。您的知识较少,仍处于学习阶段。非常感谢您的帮助。我将尝试让您知道任何问题。还有一件事我们的构建是在XAML中,那么我是否应该将此json更改为XAML?当尝试使用XAML代替json时,会出现以下错误
Param(
   [string]$collectionurl = "http://server:8080/tfs/DefaultCollection",
   [string]$projectName = "ProjectName",
   [string]$keepForever = "true",
   [string]$BuildDefinitionId = "34",
   [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
  },

  "parameters": "{\"system.debug\":\"true\",\"BuildConfiguration\":\"debug\",\"BuildPlatform\":\"x64\"}"
}
"@

 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)}