是否有可能(来自C#/ .Net)在不知道项目的情况下获取成功的TFS构建的详细信息?
我尝试使用以下代码的(变体),但是需要项目:
using Microsoft.TeamFoundation.Build.WebApi;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.Core.WebApi;
private async Task<Boolean> HasSuccessfulBuilds(TeamProjectReference project)
{
using (var ttpc = new TfsTeamProjectCollection(new Uri(collectionUri)))
{
using (var buildClient = ttpc.GetClient<BuildHttpClient>())
{
var results = await buildClient.GetBuildsAsync(project: project.Id, resultFilter: BuildResult.Succeeded);
return results.Any();
}
}
}
这样可行,但仅限于我提供项目。如果我没有指定(可选的?)项目参数(到 GetBuildsAsync ),我会得到一个例外:
&#34;为参数projectId指定的guid不能是Guid.Empty。&#34;
我想做的是为用户提供选择项目/构建定义/构建/等的能力,但仅用于项目/等。成功建造的地方。
目前,我可以找到所有项目,然后只列出已经成功构建的项目(参见上面的代码),但那是很多往返(每个项目1个),我希望从成功的构建开始(并开始工作)。
感谢。
答案 0 :(得分:1)
您建议的解决方案(查看每个团队项目)是正确的。构建的范围是团队项目级别,并且没有API可以在团队项目集(TFS)/帐户(VSTS)级别查询构建。