部署和配置生成代理

要使用 Team Foundation Build,您的团队至少必须有一个生成代理,以执行生成进程的处理器密集型工作。

两台生成服务器

每个生成代理专用于一个生成控制器且由该生成控制器控制。 生成代理可放入承载其生成控制器的同一生成服务器上,但这不是必需的;并且在某些情况下,通过将单个生成服务器放入控制多个生成服务器上生成代理的生成控制器,您团队的需求可能得到最有效率的满足。

生成代理执行包含在 AgentScope 活动中的生成进程步骤。 通常,这些步骤包括从版本控制获取文件,提供工作区,编译代码,运行测试以及将文件合并回版本控制。

确保承载您生成代理的生成服务器有足够的存储和处理能力,以匹配基本代码的大小和复杂程度,以及团队项目集合上的测试 通常,应在生成服务器的每个处理器核上承载一个生成代理。 还可以通过对每个生成代理的工作目录指定一个物理硬盘来增强性能。

提示

如果您的团队项目集合位于 Team Foundation Service 上,并且您的团队需求可由单个标准生成代理满足,则可使用承载生成控制器,而不用部署您自己的生成代理。

所需权限

您必须是生成服务器上 Windows 管理员组的成员,还必须是您团队项目集上项目集生成管理员组的成员。 请参见 Team Foundation Server 权限

您希望做什么?

创建或修改生成代理

要从生成服务器创建或修改生成代理

  1. 登录到要配置的生成服务器。

  2. 从 Windows“开始”菜单中运行**“Team Foundation 管理控制台”**。

    此时将出现**“Team Foundation 管理控制台”**。

  3. 在 Team Foundation 管理控制台的树窗格中,展开服务器的名称,然后选择**“生成配置”**节点。

    有关生成服务器的信息显示在内容窗格中。

    如果出现消息配置已安装功能“配置已安装的功能”,请参见部署生成服务器

  4. 在“生成配置”页面:

    • 要创建新的生成代理,请选择**“新建代理”**。

    • 若要修改现有的生成代理

      生成代理

      选择**“属性”**。

    随即出现**“生成代理属性”**对话框。

若要在 Visual Studio 中修改生成代理

  1. 在 Visual Studio 中,在团队资源管理器中:

    1. 如果尚未连接到团队项目集合中的团队项目,则请 连接到团队项目

    2. 选择 “主页”图标“主页”,然后选择 “生成”图标“生成”

  2. 在“生成”页上,选择**“操作”,然后选择“管理生成控制器”**。

    此时将显示**“管理生成控制器”**对话框。

    “管理生成控制器”对话框

  3. 选择要修改的生成代理,然后选择**“属性”**。

    随即出现**“生成代理属性”**对话框。

“生成代理属性”对话框

“显示名称”“说明”:键入名称和说明,帮助团队成员轻松确定生成代理。

“控制器”:选择要控制此生成代理的生成控制器。 生成控制器可以在此生成代理所在的生成服务器上运行,也可以在另一台生成服务器上运行。

有关如何配置生成代理的详细信息,请参见下面的小节。

安装 Visual Studio 和其他软件,以启用编译和其他功能

在生成代理上安装您团队在 dev 设备上使用的 Visual Studio 版本是最佳做法。 请参见 安装 Visual Studio。 还应该安装需安装在 dev 设备上且创建 app 所必须的其他软件和组件。 否则,您可能遭遇某些代码项目编译失败等问题。

指定工作目录

您可以指定生成代理用于读取或写入文件的工作目录。 例如,源文件复制到此文件夹中的子目录,二进制文件创建并存储在此文件夹的其他子目录中。

提示

您可以通过对每个生成代理的工作目录指定一个物理硬盘来增强性能。

Bb399135.collapse_all(zh-cn,VS.110).gif使用工作目录标记

虽然可以指定**“工作目录”**属性的文本路径(例如 c:\temp\build\),但更简单可靠的方法是使用标记来指定该路径。 可以使用下面两种标记:

  • 环境变量
    环境变量包含有关系统环境和登录用户的信息。 可能用到的最典型变量是 SYSTEMDRIVE,但在某些情况下,您还可以使用如 USERNAMEHOMEPATH 等变量。

    提示

    若要在生成服务器上列出环境变量,请打开命令提示,然后键入 set

  • Team Foundation Build 变量
    可在生成代理工作**“目录”**中使用以下变量:

    • $(BuildAgentId):自动生成的整数,用于唯一标识团队项目集合中的生成代理。

    • $(BuildAgentName):生成代理的**“显示名称”**。

    • $(BuildDefinitionId):自动生成的整数,用于唯一标识团队项目集合中的生成定义。

    • $(BuildDefinitionPath):由反斜杠分隔的团队项目名称和生成定义名称。

Bb399135.collapse_all(zh-cn,VS.110).gif工作目录示例

例如,您有一个名为 BuildBot3 的生成代理。 您可以在称为 CoolApp 的团队项目中定义两个分别称为 NightlyBuild 和 WeeklyBuild 的生成。 在**“工作目录”**框中,指定以下值:$(SystemDrive)\TeamBuilds\$(BuildAgentName)\$(BuildDefinitionPath)。 因此,BuildBot3 生成代理创建并使用下列两个工作目录:

C:\TeamBuilds\BuildBot3\CoolApp\NightlyBuild

C:\ TeamBuilds\BuildBot3\CoolApp\WeeklyBuild

Bb399135.collapse_all(zh-cn,VS.110).gif确保工作目录的路径不要过长

指定的工作目录不应当致使生成代理生成任何长于 259 个字符的物理路径。 否则,您的生成可能失败,并记录此错误:TF10128: The path PhysicalPath contains more than the allowed 259 characters. Type or select a shorter path.

若要解决此问题,请指定一个产生较短物理路径的工作目录。 例如,您可以指定 $(HOMEDRIVE)\bld\$(BuildAgentID)\$(BuildDefinitionID),从而产生工作目录,例如:c:\bld\3\2\

Bb399135.collapse_all(zh-cn,VS.110).gif工作目录中创建的子目录

生成代理在此路径下创建以下子目录并在其中工作。

子目录

用于存储文件...

Sources

由生成代理(例如源文件)读取。 在每个生成定义的“工作区”设置中指定它下载的文件。 请参见 使用生成工作区

Binaries

由生成代理(如编译的应用程序文件)编译。

TestResults

由生成代理运行的测试生成。

启用生成代理以运行测试

可定义执行一个或多个自动测试运行的生成进程。

重要

多种测试和测试操作要求在生成代理上安装您团队在其 dev 设备上所使用的相同版本 Visual Studio。请参见 安装 Visual Studio

生成代理可运行:

分配标记来表示生成代理功能或目的

随着生成系统的规模不断扩大,您可能需要定义专门的生成代理。 无论生成代理具有特殊功能还是针对特定类型的用法,都应当向该代理分配一个或多个标记。 这样,当团队成员创建需要特定类型的生成代理的生成定义时,他们可以在生成定义中指定标记。

如上所述,您可以从“生成代理属性”对话框分配标记。 然后,您可以 将标记应用于生成定义

下表提供标记名称以及它们可表示的生成代理功能的示例。

您可以应用以下标记…

若要标识可执行下列操作的生成代理...

x86

编译 32 位应用程序

x64

编译 64 位应用程序

bvt

运行 BVT 测试,由您的 夜间 BVT 生成运行。

Windows 应用商店

编译并测试 Windows 应用商店应用程序

IIS

编译 ASP.NET Web 应用程序,然后在运行生成代理的计算机上放置并承载它。

交互式

执行要求在以交互模式运行的生成服务器上的代理的任务。

可以将多个标记应用于生成代理。 例如,可以创建具有“x86”和“发布”标记的生成代理,以指示设置为编译 32 位应用程序的“发布”配置的代理。

如果在同一台生成服务器上运行多个生成代理,它们可能会具有相同的功能。 因此,您可能要将相同的标记应用于该生成服务器上的所有生成代理。

删除生成代理

  1. 在 Visual Studio 中,如上文创建或修改生成代理所述,打开**“管理生成控制器”**对话框。

  2. 选择要移除的生成代理,然后选择**“移除”**。

提示

登录到生成服务器后,您还可以使用 Team Foundation 管理控制台移除生成代理。

后续步骤