创建和使用生成代理
更新:2011 年 5 月
若要使用 Team Foundation Build,团队必须至少有一个生成代理。 生成代理执行处理器密集型生成工作,包括从版本控制获取文件、配置工作区、编译代码、运行测试以及将文件合并到版本控制中。 每个生成代理专用于一个生成控制器且由该生成控制器控制。
安装前
除了使用生成代理的不同方法,您还应当了解生成代理在生成系统中的作用。 有关更多信息,请参见了解 Team Foundation Build 系统。
生成代理宿主在生成计算机上。 因此,必须先配置生成计算机,然后才能创建和使用生成代理。 每台生成计算机都可以承载一个或多个生成代理。 有关更多信息,请参见配置生成计算机。
主题内容
所需权限
创建生成代理
修改生成代理
“生成代理属性”对话框
- 有关工作目录属性的更多信息
使用生成代理运行测试
安装附加软件
安装编译代码所需的软件
安装执行其他任务所需的软件
向生成代理分配标记
移除生成代理
所需权限
若要执行此过程,您必须是生成计算机上**“Administrators”组的成员,且“管理生成资源”权限必须设置为“允许”**。 有关更多信息,请参见 Team Foundation Server 权限。
创建生成代理
创建生成代理
登录到要在其上创建生成代理的生成计算机。
依次单击**“开始”、“所有程序”、“Microsoft Team Foundation Server 2010”和“Team Foundation 管理控制台”**。
此时将出现**“Team Foundation 管理控制台”**。
在树窗格中,展开服务器的名称,然后单击**“Team Foundation Build”**节点。
有关生成计算机的信息显示在内容窗格中。
如果未显示**“为…配置了生成服务”**消息,请参见配置生成计算机。
单击**“新建代理”**。
随即出现**“生成代理属性”**对话框。 有关更多信息,请参见本主题后面的生成代理属性。
当完成代理属性的修改时,单击**“确定”**。
如果紧靠生成代理名称下出现**“开始”**链接,请单击该链接。
修改生成代理
可以从客户端计算机修改生成代理,也可以在承载生成代理的生成计算机上直接修改。
从客户端计算机修改生成代理
在 Visual Studio 中,打开**“生成”菜单,然后单击“管理生成控制器”**。
此时将显示**“管理生成控制器”**对话框。
单击要修改的生成代理,然后单击**“属性”**。
随即出现**“生成代理属性”**对话框。
在生成计算机上修改生成代理
登录到运行着要修改的生成代理的生成计算机。
依次单击**“开始”、“所有程序”、“Microsoft Team Foundation Server 2010”和“Team Foundation 管理控制台”**。
此时将出现**“Team Foundation 管理控制台”**。
在树窗格中,展开服务器的名称,然后单击**“Team Foundation Build”**节点。
在紧靠要修改的生成代理名称下方,单击**“属性”**。
随即出现**“生成代理属性”**对话框。
“生成代理属性”对话框
在**“生成代理属性”**对话框中,除了影响生成代理工作方式的其他属性外,还可以查看或更改显示名称和说明。
显示名称、说明
提供名称和说明,可帮助团队成员轻松标识和获取有关生成代理的重要信息。
控制器
指定要控制此生成代理的生成控制器。 生成控制器可以在此生成代理所在的生成计算机上运行,也可以在另一个生成计算机上运行。
计算机名称
此框显示承载此生成代理的生成计算机的名称。
工作目录
使用此框可以指定工作目录的路径。 有关更多信息,请参见有关工作目录属性的更多信息。
启用了生成代理服务
选中此复选框可以使该生成代理正常工作,如果想要禁用该生成代理并阻止向它分配生成,则清除此框。
提示
在生成计算机上执行维护时,最好禁用生成代理。
有关工作目录属性的更多信息
生成代理将工作目录用于代理必须从文件读取或写入文件的操作。 例如,源文件复制到此文件夹中的子目录,二进制文件创建并存储在此文件夹的其他子目录中。
工作目录标记
虽然可以指定**“工作目录”**属性的文本路径(例如 c:\temp\build\),但更灵活的方法是使用标记指定该路径。 可以使用下面两种标记:
环境变量:环境变量包含有关系统环境和登录用户的信息。
例如,您已将 Team Foundation 生成服务 配置为在称作 BuildSvcAcct 的帐户下运行。 您可指定 $(HomeDrive)\Builds 作为运行 Windows Server 2008 的生成计算机上生成代理的**“工作目录”**。 因此,生成代理通常使用类似如下位置的物理目录作为其工作目录:C:\Builds。
提示
若要在生成计算机上列出环境变量,请打开命令提示,然后键入 set。
Team Foundation Build 变量:可以在生成代理工作目录中使用以下变量:
$(BuildAgentId):自动生成的整数,用于唯一标识团队项目集合中的生成代理。
$(BuildAgentName):生成代理的**“显示名称”**。
$(BuildDefinitionId):自动生成的整数,用于唯一标识团队项目集合中的生成定义。
$(BuildDefinitionPath):由反斜杠分隔的团队项目名称和生成定义名称。
工作目录示例
例如,您有一个名为 BuildBot3 的生成代理。 您可以在称为 CoolApp 的团队项目中定义两个分别称为 NightlyBuild 和 WeeklyBuild 的生成。 在**“工作目录”**框中,指定以下值:$(SystemDrive)\TeamBuilds\$(BuildAgentName)\$(BuildDefinitionPath)。 因此,BuildBot3 生成代理创建并使用下列两个工作目录:
C:\TeamBuilds\BuildBot3\CoolApp\NightlyBuild
C:\ TeamBuilds\BuildBot3\CoolApp\WeeklyBuild
确保工作目录不要太长
指定的工作目录不应当致使生成代理生成任何长于 259 个字符的物理路径。 否则,生成会失败并记录此错误:TF10128: 路径物理路径 包含的字符数超过所允许的 259 个。 请键入或选择较短的路径。 此错误可能让您很诧异,因为您通常可能不注意生成代理创建的物理路径。
若要解决此问题,可以指定一个产生较短物理路径的工作目录。 例如,可以指定以下目录:$(HOMEDRIVE)\bld\$(BuildAgentID)\$(BuildDefinitionID),它产生类似如下路径的工作目录:c:\bld\3\2\。
工作目录中创建的子目录
生成代理在此路径下创建以下子目录并在其中工作。
子目录 |
用于存储文件... |
---|---|
Sources |
由生成代理(例如源文件)读取。 在每个生成定义的“工作区”设置中指定它下载的文件。 有关更多信息,请参见使用生成工作区。 |
Binaries |
由生成代理(如编译的应用程序文件)编译。 |
TestResults |
由生成代理运行的测试生成。 |
使用生成代理运行测试
可以设计运行一个或多个自动测试运行的生成进程。 如下表所示,某些类型的测试和测试操作需要满足特殊要求的生成代理。
测试类型 |
Visual Studio 2010 必须安装在生成计算机上 |
其他要求和信息 |
---|---|---|
代码覆盖率 |
是 |
无 |
编码的 UI 测试 |
是 |
生成计算机必须作为交互进程运行。 有关如何设置此类型生成计算机的更多信息,请参见配置生成计算机。 有关这些类型的测试的更多信息,请参见使用自动 UI 测试来测试用户界面。 |
数据库测试数据生成 |
否 |
无 |
数据库单元测试 |
是 |
无 |
一般测试 |
否 |
无 有关更多信息,请参见创建使用一般测试运行可执行文件的自动测试。 |
负载测试 |
是 |
无 有关更多信息,请参见使用顺序测试设置测试运行顺序。 |
MSTest 单元测试 |
否 |
无 |
顺序测试 |
否 |
无 |
测试影响分析 |
否 |
无 |
Web 测试 |
是 |
无 |
有关如何对运行测试的生成进程进行定义的更多信息,请参见使用生成系统运行测试。
安装附加软件
为了让生成代理执行某些任务,您可能需要在生成计算机上安装附加软件。
安装编译代码所需的软件
对于生成许多最典型项目的生成代理,不需要附加软件。 例如,在未安装任何附加软件的情况下,生成代理可以编译基本 Visual C# WPF 应用程序。
但是,您必须安装附加软件才能编译其他类型的项目。 例如,必须安装 Visual Studio 才能编译安装项目。
确保生成代理可以编译项目
安装团队在运行生成代理的生成计算机上使用的任何版本的 Visual Studio。
安装在开发人员环境中安装的任何其他软件和组件,以及生成应用程序所需的其他软件和组件。
安装执行其他任务所需的软件
对于执行各种其他任务的生成代理,可能需要在生成计算机上安装附加软件。 下表标识一些常见生成代理任务以及执行这些任务所需的软件。
若希望生成代理... |
必须在生成代理计算机上安装以下软件... |
---|---|
生成 ASP.NET Web 应用程序项目 |
Visual Studio 2010 |
生成 C++ 项目 |
Visual Studio 2010 |
向生成代理分配标记
随着生成系统的规模不断增长,您可能需要定义专门的生成代理。 无论生成代理具有特殊功能还是针对特定类型的用法,都应当向该代理分配一个或多个标记。 这样,当团队成员创建需要特定类型的生成代理的生成定义时,他们可以在生成定义中指定标记。
可以将多个标记应用于生成代理。 例如,可以创建具有“x86”和“发布”标记的生成代理,以指示设置为编译 32 位应用程序的“发布”配置的代理。
如果在同一生成计算机上运行多个生成代理,它们可能都具有相同的功能。 因此,您可能要将相同的标记应用于该生成计算机上的所有生成代理。
使用标记表示生成代理功能
下表提供标记名称以及它们可表示的生成代理功能的示例。
可以将下列标记应用于生成代理... |
标识可执行下列操作的生成代理... |
---|---|
x86 |
编译 32 位应用程序 |
x64 |
编译 64 位应用程序 |
IIS |
编译 ASP.NET Web 应用程序,然后在运行生成代理的生成计算机上放置并承载它 |
测试,压力 |
在已设置 专业测试工具版 2010 以运行负载和压力测试的生成计算机上运行的生成代理。 |
使用标记对生成过程进行负载平衡
可以使用标记平衡团队必须执行的生成处理工作的负载。 例如,您可能拥有一个称为“签入生成”的用于验证签入的生成定义。 (有关更多信息,请参见 定义封闭签入生成以验证更改。)此生成定义经常运行,一次只能运行它的一个实例。 因此,您安装一个具有高性能硬件(如高速多核处理器和高速硬盘驱动器)的生成计算机。 然后,在该计算机上创建生成代理,并向其分配标记签入。 您将生成定义设置为仅在具有签入标记的生成代理上运行。
您有另一个称为“高速跟踪生成”的生成定义,用于处理一个团队正在执行的最高优先级别项目的生成。 您设置了另一个满足此特殊项目要求的生成代理, 向其分配标记“FastTrack”,然后将生成定义设置为仅在具有此标记的生成代理上运行。
将标记应用于客户端计算机上的生成代理
在**“生成”菜单上,单击“管理生成控制器”**。
此时将显示**“管理生成控制器”**对话框。
单击要将标记应用于的生成代理,然后单击**“属性”**。
随即出现**“生成代理属性”**对话框。
使用下列方法之一应用一个或多个标记:
从列表中选择一个或多个标记。
单击**“添加新标记”链接。 在“添加新标记”**对话框中,键入要应用的标记的名称。
将标记应用于生成计算机上的生成代理
登录到运行着要修改的生成代理的生成计算机。
依次单击**“开始”、“所有程序”、“Microsoft Team Foundation Server 2010”和“Team Foundation 管理控制台”**。
此时将出现**“Team Foundation 管理控制台”**。
在树窗格中,展开服务器的名称,然后单击**“Team Foundation Build”**节点。
在紧靠生成代理名称下方,单击**“属性”**。
随即出现**“生成代理属性”**对话框。
使用下列方法之一应用一个或多个标记:
从列表中选择一个或多个标记。
单击**“添加新标记”链接。 在“添加新标记”**对话框中,键入要应用的标记的名称。
移除生成代理
可以使用客户端计算机移除生成代理,也可以从承载生成代理的生成计算机直接移除生成代理。
注意 移除生成代理并不从生成计算机卸载 Team Foundation 生成服务。
使用客户端计算机移除生成代理
在**“生成”菜单上,单击“管理生成控制器”**。
此时将显示**“管理生成控制器”**对话框。
单击要移除的生成控制器或生成代理,然后单击**“删除”**。
从生成代理的生成计算机移除生成代理
登录到运行着要修改的生成代理的生成计算机。
依次单击**“开始”、“所有程序”、“Microsoft Team Foundation Server 2010”和“Team Foundation 管理控制台”**。
此时将出现**“Team Foundation 管理控制台”**。
在树窗格中,展开服务器的名称,然后单击**“Team Foundation Build”**节点。
在紧靠生成代理名称下方,单击**“删除”**。
请参见
其他资源
修订记录
日期 |
修订记录 |
原因 |
---|---|---|
2011 年 5 月 |
添加了有关如何运行测试的信息。 |
信息补充。 |