2011-06-06 93 views
5

我已经使用TB 2010为我们的产品中的多个功能设置了多个构建定义。 我想知道如何使用现有的定义来创建“主构建”。 我将更具体: 在MSBuild中,我可以使用target来调用另一个MSBuild项目。这样我可以链接构建定义以获得最终的主构建脚本。 如何在结核病2010年做到这一点。 注意:我想使用WF4 ...不是MSBuild!Master Build with Team Build 2010

谢谢

回答

4

您当然可以编写一个工作流自定义活动,以排队构建定义的构建。该活动应该是一个代码活动并接受您想要排队的构建定义的名称。

要编写与您的TFS服务器交互的代码以排队构建,您可以使用Microsoft.TeamFoundation.Build.Client程序集的API。另外,Jim Lamb发布了关于为构建here创建自定义活动的博客。

在细节,你的代码应该做以下步骤:

  1. 创建TfsTeamProjectCollection对象连接到您的团队项目集合。
  2. 获取IBuildServer对象。这是主要条目。从这里你可以得到构建定义,创建一个构建请求,排队构建等

实际上,我惊讶的是,没有为2010版本没有例子,当我试图寻找“TFS编程排队|创建一个构建“。我可能会在这里发表博客。

但有一点需要注意,即从您的自定义活动排队的构建将由构建服务帐户排队,因此您需要确保此帐户被授予正确的permissions以排队构建。默认情况下,当它被添加到TFS构建服务帐户组时,我认为它没有。

UPDATE:

埃瓦尔德·霍夫曼刚刚写了一篇关于TFS系列构建,其中一个讨论有关从自定义活动做模拟。它非常适合你的需要:

http://www.ewaldhofman.nl/post/2010/05/28/Customize-Team-Build-2010-e28093-Part-9-Impersonate-activities-(run-under-other-credentials).aspx

我还发现,泰勒Lafrine在博客程序于2009年在他的岗位创建构建回:

http://blogs.msdn.com/b/taylaf/archive/2009/12/04/introducing-tfs-impersonation.aspx

希望它能帮助。

+1

非常感谢!我会试试这个 – monkzen 2011-06-12 17:40:30

+0

@Duat Le你知道我可以做什么,当我排队很多建立一个又一个,每个依赖另一个?我的问题是,构建异步排队,但我想等待构建。有任何想法吗? – Rookian 2012-02-15 09:33:31

+0

你当然可以阻止你的线程队列的构建和等待,直到构建完成。您需要的是获取IQueuedBuild对象,并等待状态属性变为“已完成”或“已取消”。请注意,构建请求可能会延期,因此请密切关注,如果构建请求被推迟,您可以选择等待或取消。 – 2012-02-22 02:11:59