从VisualStudioOnline获取构建定义通过TFSAPI从VisualStudioOnline获取构建定义我在通过TFSAPI从VisualStudioOnline项目检索构建信息时遇到问题。我似乎可以连接到该项目,并找到团队项目和团队项目的预期集合,但尽管该项目有两个构建定义和许多构建,但TFSAPI在查询时总是返回一个零长度数组定义或构建建立。该项目是一个Git项目。我的生产代码类似于我为尝试调试问题而编写的测试代码:vartfsUri=newUri("https://[myproject].visualstudio.com");vartcs=newTfsConfigurationServer(tfsUri);varteamProjCollections=tcs.CatalogNode.QueryChildren(new[]{CatalogResourceTypes.ProjectCollection},false,CatalogQueryOptions.None).Select(collectionNode=>newGuid(collectionNode.Resource.Properties["InstanceId"])).Select(collectionId=>tcs.GetTeamProjectCollection(collectionId));vartpc=teamProjCollections.Single(x=>x.Name==@"[我的项目].visualstudio.comDefaultCollection");varnewTeamProjects=tpc.CatalogNode.QueryChildren(new[]{CatalogResourceTypes.TeamProject},false,CatalogQueryOptions.None);vartp=newTeamProjects.Single(x=>x.Resource.DisplayName=="[团队项目名称]");varbuildServer=tpc.GetService();varbuildDefinitions=buildServer.QueryBuildDefinitions(tp.Resource.DisplayName);buildDefinitions始终是一个空数组。构建定义肯定在那里——我可以使用VisualStudio连接到项目,它在团队资源管理器的构建选项卡中显示它们。这段代码过去对我有用,但它总是连接到TFVC项目,而不是Git项目。有趣的是,如果我像这样使用团队项目集合中的VersionControlServer:varvcs=tpc.GetService();varteamProjects=vcs.GetAllTeamProjects(true);..teamProjects始终是零长度数组。此外,如果我尝试通过指定非常通用的构建详细规范来获取团队项目集合的所有构建,则不会返回任何构建。一些附加信息:我正在使用VSEnterprise2015RC。我是VSO项目的管理员,创建了团队项目集合、团队项目和构建定义。我推送一些代码,然后运行一些构建。通过API连接时,我以自己的身份登录。我的凭据似乎是正确的。所以,我在尝试解决这个问题时遇到了一些问题。我是否需要其他方法来访问Git存储库?也许只能通过新的TFS2015RESTAPI实现?也许我需要让自己的构建在VSO项目中“可见”?您可以使用BuildHttpClient发出类似于2.0RESTAPI的请求。GitHub上的这个例子是一个很好的资源,如果你想轮询一个项目,它应该看起来更像这样:使用System.Collections.Generic;使用Microsoft.TeamFoundation.Build.WebApi;使用微软。VisualStudio.Services.Client;staticvoidGetBuildStatus(){vartfsUrl="http://:/tfs/";varbuildClient=newBuildHttpClient(newUri(tfsUrl),newVssAadCredential());vardefinitions=buildClient.GetDefinitionsAsync(项目:“”);varbuilds=buildClient.GetBuildsAsync("";foreach(varbuildinbuilds.Result){Console.WriteLine(String.Format("{0}-{1}-{2}-{3}",build.Definition.Name,build.Id.ToString(),build.Status.ToString(),build.StartTime.ToString()));}}我相信你是对的我在GIT项目上是对的我用自己的代码测试了你的代码VSO,我无法检索任何build.vNext构建,但我可以检索旧的XAML构建定义。然后我尝试使用RESTAPI,它也只返回旧版XAML构建,直到我使用RESTAPI版本2然后回来使用XAML和build.vNext样式构建。下面是我在浏览器中尝试的示例字符串(确保先登录VSO进行测试)以上是C#学习教程:GetthebuilddefinitionfromVisualStudioOnlinethroughtheTFSAPI分享的全部内容,如果对大家有用,需要了解更多C#学习教程,希望大家多多关注——https://[vsoname].visualstudio.com/defaultcollection/[project]/_apis/build/definitions?api-version=2.0本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
