C# 如何从内置TFS 2017中获取相关变更集?
有了c#,我以前能够在XAML构建过程中使用C# 如何从内置TFS 2017中获取相关变更集?,c#,tfs,tfs-sdk,changeset,C#,Tfs,Tfs Sdk,Changeset,有了c#,我以前能够在XAML构建过程中使用InformationNodeConverters.GetAssociatedChangesets(IBuildDetail)从TFS 2012获取关联的变更集。我从CodeActivityContext.GetExtension()获得了IBuildDetail 现在我正在使用TFS 2017构建过程,我正在尝试使用下面的代码执行类似的操作,但它不会返回变更集 var teamProjectCollection = TfsTeamProjectCol
InformationNodeConverters.GetAssociatedChangesets(IBuildDetail)
从TFS 2012获取关联的变更集。我从CodeActivityContext.GetExtension()
获得了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);
var teamProjectCollection=tfstreamprojectcollectionfactory.GetTeamProjectCollection(新Uri(“http://ourtfsserver:8080/tfs/DefaultCollection"));
var versionControlServer=teamProjectCollection.GetService();
var buildServer=teamProjectCollection.GetService();
var build=buildServer.GetBuild(新Uri(string.Format()vstfs:///Build/Build/{0}", "3807")));
var changeSets=InformationNodeConverters.getAssociatedChangeset(构建);
上述所有操作似乎都有效,并且成功返回了生成,但changeSets.Count()为0,而实际上应该返回一些变更集
是否有建议对上述代码进行更改,或者有其他方法进行更改?还是这在TFS 2017中不再有效?Microsoft正在更新TFS以使用REST API。我想你会得到你想要的 这里有一个链接,可用于拨打剩余电话
另外,如果您还不知道,Microsoft正在弃用XAML构建。有关更多信息,请参阅。我可以通过使用我认为是REST API的包装来实现这一点:
Microsoft.TeamFoundation.Build2.WebApi.dll
见:
使用Microsoft.TeamFoundation.Build.WebApi;
使用Microsoft.VisualStudio.Services.Common;
使用Microsoft.VisualStudio.Services.WebApi;
使用制度;
Net系统;
var u=新Uri(“http://ourtfsserver:8080/tfs/DefaultCollection/");
var c=新的VssCredentials(新的Microsoft.VisualStudio.Services.Common.WindowsCredential(新的网络凭据(“用户名”、“密码”、“域”)));
var连接=新VSS连接(u,c);
var buildServer=connection.GetClient();
var changesets=buildServer.getbuildchangessync(“projectname”,3807);
如果我不清楚,很抱歉。我不再使用XAML构建过程,而是仍然运行代码来定制构建。我想我正在寻找一些特定的方法来获取变更集,或者通过RESTAPI调用(我还没有成功),还有API 4.1版预览的文档:我是否需要提供足够的凭据才能查看更改集?这看起来很奇怪,因为我可以成功地查看有关构建的其他详细信息。
using Microsoft.TeamFoundation.Build.WebApi;
using Microsoft.VisualStudio.Services.Common;
using Microsoft.VisualStudio.Services.WebApi;
using System;
using System.Net;
var u = new Uri("http://ourtfsserver:8080/tfs/DefaultCollection/");
var c = new VssCredentials(new Microsoft.VisualStudio.Services.Common.WindowsCredential(new NetworkCredential("username", "password", "domain")));
var connection = new VssConnection(u, c);
var buildServer = connection.GetClient<BuildHttpClient>();
var changesets = buildServer.GetBuildChangesAsync("projectname", 3807).Result;