如何使用 C# 从 TFS 2015 确定已成功构建的项目?

How to determine, from TFS 2015, with C#, projects which have successful builds?

是否有可能(从 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),我会得到一个异常:

"The guid specified for parameter projectId must not be Guid.Empty."

我想做的是为用户提供 select project/build definition/build/etc 的能力,但是 projects/etc。已经成功构建的地方。

目前,我可以找到所有项目,然后只列出成功构建的项目(见上面的代码),但这是很多次往返(每个项目 1 次),我希望开始来自成功的构建(和工作)。

谢谢。

您提出的解决方案(查看每个团队项目)是正确的。生成在团队项目级别的范围内,没有 API 可以在团队项目集合 (TFS) / 帐户 (VSTS) 级别查询生成。