c# - 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
}
如何获取属于构建的变量?或者我是否必须在构建期间将变量显式存储在某处?
编辑:我在Stackoverflow上找到了以下 Q/A
不幸的是,我无法使用两种解决方案获得 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 命令读取该文件。
适用于 TFS 2015 的 TFS Rest API - 获取构建工件
GET https://{instance}/DefaultCollection/{project}/_apis/build/builds/{buildId}/artifacts
推荐阅读
- python - 烧瓶:ImportError: cannot import name 'db' from 'src.app' ,无法从应用程序导入 db
- javascript - 替换整个页面上多个单词的所有实例
- amazon-web-services - 您能否仅依靠安全组来安全地限制对可公开访问的 RDS 的访问?
- elasticsearch - 无法分配请求的地址 ::1:
- javascript - JavaScript 查询选择器失败
- c# - 查找可用串口并为 Unity 打开它的功能
- python - 地图对象和生成器对象有什么区别?
- javascript - 制表符:使用 AJAX 和 AutoColumns=true 时在哪里添加动态列?
- php - 我的 PHP SQL Server 连接在浏览器中不起作用
- python - 有人可以告诉我是否可以在经理中使用 request.POST