Вы можете запросить определения старше одного года с помощью этого запроса в SQL Server.
SELECT [DefinitionId],[DefinitionVersion],[DefinitionName] FROM [Tfs_CollectionLC].[Build].[tbl_Definition]
WHERE [CreatedOn] < '2016-06-12 00:00:00.000'
Но поскольку определения больше не используются, вам необходимо получить последнюю сборку для каждого определения и проверить, была ли сборка FinishTime предшествующей году (где [FinishTime] ‹ '2016-06-12 00:00:00.000' ).
Вы можете использовать TFS API/Client API, чтобы получить сведения о сборке, включая сборку FinishTime, а затем отфильтровать их соответствующим образом. Вы можете сослаться на приведенный ниже код, который перечисляет каждый командный проект и получает последний статус сборки для каждого из них. определения:
TfsTeamProjectCollection tfs = new TfsTeamProjectCollection(new Uri("http://tfs:8080"));
var vcs = tfs.GetService<VersionControlServer>();
var teamProjects = vcs.GetAllTeamProjects(true);
IBuildServer buildServer = (IBuildServer)tfs.GetService(typeof(IBuildServer));
foreach (TeamProject proj in teamProjects)
{
var defs = buildServer.QueryBuildDefinitions(proj.Name);
System.Console.WriteLine(string.Format("Team Project: {0}", proj.Name));
foreach(IBuildDefinition def in defs)
{
IBuildDetailSpec spec = buildServer.CreateBuildDetailSpec(proj.Name, def.Name);
spec.MaxBuildsPerDefinition = 1;
spec.QueryOrder = BuildQueryOrder.FinishTimeDescending;
var builds = buildServer.QueryBuilds(spec);
if (builds.Builds.Length > 0)
{
var buildDetail = builds.Builds[0];
System.Console.WriteLine(string.Format(" {0} - {1} - {2}", def.Name, buildDetail.Status.ToString(), buildDetail.FinishTime));
}
}
System.Console.WriteLine();
}
Ссылка на этот поток: API TFS - Как запрашивать сборки независимо от того, к какому определению сборки они принадлежат
Обновление: на основе комментариев @Dhurva ниже:
Мы также можем использовать утилиту из github TFS Manager, которая находит все определения сборки из командного проекта: https://github.com/jelledruyts/TfsTeamProjectManager
person
Andy Li-MSFT
schedule
12.06.2017