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

时间:2018-03-19 13:39:17

标签: c# tfs tfs2015

是否有可能(来自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个),我希望从成功的构建开始(并开始工作)。

感谢。

1 个答案:

答案 0 :(得分:1)

您建议的解决方案(查看每个团队项目)是正确的。构建的范围是团队项目级别,并且没有API可以在团队项目集(TFS)/帐户(VSTS)级别查询构建。