TFS(Azuredevops)2015 C#获取构建中使用的变量



我在新的vnext构建模板中创建了一些变量(TFS 2015 Update 3),这些变量在构建过程中被部分修改。我可以通过构建定义访问(未修改的)变量:

VssConnection connection = new VssConnection(Helper.uri, new VssCredentials());
var vNextBuildClient = connection.GetClient<BuildHttpClient>();
var buildDef = (vNextBuildClient.GetDefinitionAsync(myProject, myId).Result) as BuildDefinition;
// buildDef.Variables contains all variables

但是,我无法获得特定构建的变量。

var buildsvNext = await vNextBuildClient.GetBuildsAsync(myProject, listOfIDs, null, null, null, null, null, null, null, null, null, null, null, null, 5, null, null);
var currentBuilds = buildsvNext.Where(b => b.Definition.Id == definition2.Id).ToList();
foreach (var build in currentBuilds) {
    // no variables here
}

如何获得属于构建的变量?还是我必须在构建过程中明确存储变量?

编辑:我找到了以下Q/A ONstackoverflow

不幸的是,我无法获得带有两个解决方案的工件文件夹:

https://{AccountName}.visualstudio.com/DefaultCollection/{TeamProject}/_apis/build/builds/{BuildId}/artifacts/drop?%24format=zip
http://{MyTFSServer}/{TeamProjectCollection}/{TeamProject}/_api/_build/ItemContent?buildUri=vstfs:///Build/Build/{BuildId}&path=/drop&__v=5

我找到了一个解决方法:

我将使用PowerShell脚本的所有变量保存到工件中的XML文件中,然后使用适当的REST API命令读取此文件。

TFS REST API用于TFS 2015-获取构建工件

GET https://{instance}/DefaultCollection/{project}/_apis/build/builds/{buildId}/artifacts

最新更新