[英]TFS (AzureDevOps) 2015 C# Get Variables used in Build
我在新的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
}
如何获取属于构建的变量? 还是在构建过程中必须将变量明确存储在某个地方?
编辑:我在Stackoverflow上找到以下问题
不幸的是,我无法同时获得两种解决方案的Artifact文件夹:
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命令读取该文件。
GET https://{instance}/DefaultCollection/{project}/_apis/build/builds/{buildId}/artifacts
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.