如何使用 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) 级别查询生成。
是否有可能(从 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) 级别查询生成。