我可以查询 TeamProject 中的所有构建,如下所示:
var bServer = teamProjectCollection.GetService<IBuildServer>();
IBuildDetail[] builds = bServer.QueryBuilds("myTeamProject");
这将产生所有
builds
在给定的 myTeamProject
内.但我只对昨天的构建感兴趣。在得到 builds
内的结果后,我显然可以进行过滤。 .我仍然想知道是否存在 QueryBuilds()
的过载在提供的时间跨度内进行构建。背景:
在我最初的 TFS 构建解决方案中,自定义代码事件会捕获
BuildDetail
对我们很重要的属性,并使用 Microsoft.Office.Interop.Excel 将它们添加到 Excel 工作表中。这相当方便,因为它发生在 Build 期间,我们的“BuildLog.xls”始终是最新的。不幸的是,这导致 this问题,所以我不得不删除代码事件,我目前正在实现计划 B:
一个控制台应用程序计划每天启动一次,查询昨天的构建并将它们添加到我的 Excel 文件中。
最佳答案
您可以创建一个 IBuildDetailSpec对象并指定 MaxFinishTime(时间范围的结束)和 MinFinishTime(时间范围的开始)以获取范围内的构建。
IBuildServer 有一个方法来创建 IBuildDetailSpec 和一个 QueryBuilds 方法来使用这个规范进行查询。
关于TFS SDK : Query yesterday's builds,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7914104/