Build 在TFS下,如何获取与排队生成关联的生成?

Build 在TFS下,如何获取与排队生成关联的生成?,build,tfs,tfsbuild,Build,Tfs,Tfsbuild,我们正在编写一个层,它允许我们从另一个应用程序触发TFS下的构建 其目的是Microsoft Dynamics CRM站点可以触发构建。为了简化这个过程,我们编写了一个非常简单的基于web的服务,它允许Dynamics站点启动构建,获取一个标识符,然后轮询状态和结果 触发生成将执行以下操作: IBuildRequest buildRequest = buildDefinition.CreateBuildRequest(); IQueuedBuild queuedBuild = buildServ

我们正在编写一个层,它允许我们从另一个应用程序触发TFS下的构建

其目的是Microsoft Dynamics CRM站点可以触发构建。为了简化这个过程,我们编写了一个非常简单的基于web的服务,它允许Dynamics站点启动构建,获取一个标识符,然后轮询状态和结果

触发生成将执行以下操作:

IBuildRequest buildRequest = buildDefinition.CreateBuildRequest();
IQueuedBuild queuedBuild = buildServer.QueueBuild(buildRequest);
然后我们将queuedBuild(Id)的标识符返回给客户机。然后,它可以使用此标识符轮询服务,以查看构建是否仍在运行或已完成。问题是,虽然queuedBuild确实允许我们通过build属性访问实际生成,但只有在生成到达队列的头部并启动后,才会填充该属性。在此之前,该属性将返回null(否则我们将使用构建标识符)

好的,所以我想我应该继续查询队列以获得排队构建。直到构建完成,然后排队的构建从队列中移除,这样我们就不能再获取构建信息了

我所追求的是一种无状态查询TFS的方法,以查看触发的生成是否仍在队列中、正在生成或已完成。有什么方法可以做到这一点吗?

你可以这样做

queuedBuild.WaitForBuildStart();
当此阻塞调用退出时,生成属性将不为null