使用c#,我之前能够使用InformationNodeConverters.GetAssociatedChangesets(IBuildDetail)
在XAML构建过程中从TFS 2012获取关联的更改集。我从CodeActivityContext.GetExtension<IBuildDetail>()
获得了IBuildDetail。
现在我正在使用TFS 2017构建过程,我尝试使用下面的代码执行类似操作,但它不会返回更改集。
var teamProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://ourtfsserver:8080/tfs/DefaultCollection"));
var versionControlServer = teamProjectCollection.GetService<VersionControlServer>();
var buildServer = teamProjectCollection.GetService<IBuildServer>();
var build = buildServer.GetBuild(new Uri(string.Format("vstfs:///Build/Build/{0}", "3807")));
var changeSets = InformationNodeConverters.GetAssociatedChangesets(build);
以上所有内容似乎都有效,并且构建成功返回,但是changeSets.Count()为0,实际上应该返回一些更改集。
上面的代码是否有建议的更改,或者是另一种方法?或者这在2017年TFS中不再有效?
答案 0 :(得分:2)
Microsoft正在更新TFS以使用REST API。我认为this REST API call会让你想要的。
这里是.NET client libraries用于进行REST调用的链接。
此外,如果您还不知道,Microsoft正在弃用XAML版本。有关详细信息,请参阅this blog post。
答案 1 :(得分:2)
我能够通过使用我认为是REST API的包装器来实现这一点:SELECT cron.schedule('45 12 * * *', $$CREATE TABLE testCron AS Select 'Test Cron' as Cron$$);
Microsoft.TeamFoundation.Build2.WebApi.dll