演练:在 Team Foundation Build 中创建生成定义
更新:2007 年 11 月
本演练演示如何为 Team Foundation Build 配置生成定义。开始此演练之前,必须了解一些有关 Team Foundation Build 的基础知识。有关更多信息,请参见 使用 Team Foundation Build 管理生成。
在本演练中,您将逐步学习使用“生成定义”对话框配置生成定义的过程。还将建立生成代理和将运行新创建的生成定义的用户所需的权限。在本演练中,您将完成以下任务:
创建新的生成定义。
选择要生成的解决方案。
选择生成代理和放置位置。
选择生成步骤。
选择生成的配置和平台。
建立生成代理权限。
为指定的用户建立权限,这些用户将使用这些权限运行新创建的生成定义。
先决条件
Visual Studio Team System Team Foundation Server.
一个到 Team Foundation Server 的连接和至少一个现有团队项目。有关更多信息,请参见 演练:加入团队项目 和 如何:创建团队项目。
源代码管理服务器中至少包含一个要生成的解决方案的工作区。有关更多信息,请参见如何:创建映射的工作区。
必需的权限
若要完成此演练,必须将“管理生成”权限设置为“允许”。另外,应用层服务帐户和 Team Foundation Build 服务帐户必须对生成放置位置具有读/写权限。有关更多信息,请参见 Team Foundation Server 权限。
创建新的生成定义
在团队资源管理器中,选择要创建新的生成定义的项目。
在“生成”菜单上选择“新建生成定义”。
“生成定义”对话框出现,其中选择了“常规”选项卡。
提示: 旁边带有警告图标的选项卡需要用户输入。
在“生成定义名称”文本框中指定要与生成定义相关联的名称。
输入的名称必须是唯一的有效 Windows 文件名。
在“说明”文本框中添加相应的说明。
该说明出现在“将生成‘<团队项目名称>’排队”对话框中。有关更多信息,请参见 如何:启动生成定义或对其进行排队。
单击“工作区”选项卡。
默认情况下,“工作文件夹”表包括要创建新生成定义的团队项目的源代码管理文件夹。将在生成代理上创建镜像源代码管理层次结构的本地文件夹。生成代理上的“本地文件夹”列中将列出本地文件夹。生成代理上的所有工作区路径都相对于所显示的默认根目录进行映射。
若要将现有的工作区复制到工作文件夹列表中,请单击“复制现有工作区”按钮以启动“选择工作区”对话框。
所选的工作区将规范化为生成代理上的通用根目录。
您也可以单击“源代码管理文件夹”中的空表单元格,然后单击省略号 (? 来浏览到要作为工作文件夹添加的源代码管理文件夹。所选的源代码管理文件夹也会进行规范化,而成为生成代理上的通用根目录。
单击“项目文件”选项卡。在“项目文件”窗格上,可以浏览到现有的 TFSBuild.proj 项目文件,或者启动“MSBuild 项目文件创建向导”来创建新的 TFSBuild.proj 文件。
若要浏览到现有的 TFSBuild.proj 文件,请单击“浏览”。在“浏览文件夹”对话框中,从“TeamBuildTypes”文件夹中选择现有的生成定义,然后单击“确定”。
现在,TFSBuild.proj 文件便在现有的生成定义和新的生成定义之间共享。
如果找到了 TFSBuild.proj 文件,则“项目文件”窗格上将显示文本“发现 MSBuild 项目文件: TFSBuild.proj”。如果未找到项目文件,则“项目文件”窗格将显示警告文本,并建议您创建新的 MSBuild 项目文件。
重要说明: 对共享 TFSBuild.proj 文件进行的任何更改都会自定义与该文件相关联的所有生成定义。有关更多信息,请参见 自定义 Team Foundation Build。
若要为生成定义创建新的项目文件,请单击“创建”。
随即出现“MSBuild 项目文件创建向导”。
在“选择要生成的解决方案并进行排序”页上,选择要生成的解决方案。若要对解决方案进行排序,请选择一个解决方案,然后使用列表右侧的箭头键来更改其在生成顺序中的位置。
警告: 确定解决方案的生成顺序时,请注意在其他解决方案上有依赖项的解决方案。例如,如果解决方案 1 上有解决方案 2 的依赖项,则设置在解决方案 2 之前生成解决方案 1。
单击“下一步”。
随即出现“选择要生成的配置”页。
在“要按哪些配置生成”下的网格中,选择要包括在生成定义中的所需配置和平台。生成配置指示配置和平台,例如 Release 和 Any CPU。
说明: 如果正在创建 Web 项目的生成定义,请选择“混合平台”。
单击“下一步”。
随即出现“选择生成选项”页。
根据需要选中“运行测试(例如,运行 BVT 等)”和“运行代码分析”复选框来指示要启用的生成选项。如果选中“运行测试(例如,运行 BVT 等)”复选框,请使用下拉选项根据需要指定“测试元数据文件”和“要运行的测试列表”。
重要说明: 若要运行测试,生成代理上必须安装有 Test Edition。若要运行代码分析,生成代理上必须安装有 Development Edition。
单击“完成”。
随即出现“生成定义”对话框的“项目文件”窗格。创建的 TFSBuild.proj 文件存储在源代码管理中的 $<团队项目>\TeamBuild Types\<生成类型名称>\TFSBuild.proj 下。
单击“保留策略”选项卡。
在“指定应如何保留生成”列表中,可以为失败的、已停止的、部分成功的或完全成功的生成选择保留策略。
从下拉列表中选择一个保留策略。
如果选择“<指定要保留的数量>”,则出现“生成数”对话框。
在“指定要保留的生成数”文本框中,指示要为指定的生成结果保留的生成数目。
单击“生成默认值”选项卡。
在“生成默认值”窗格中,可以从“生成代理”下拉列表中选择现有的生成代理。
如果当前不存在任何生成代理,或者希望创建新的生成代理,请单击“新建”。
随即出现“生成代理属性”对话框。
填写“显示名称”、“说明”和“计算机名称”文本框,然后单击“确定”。
有关更多信息,请参见如何:创建和管理生成代理。
在“生成将临时存放到以下存储(例如 \\server\share)”文本框中键入 UNC (\\server\share) 位置。生成完成后,生成的二进制文件和日志文件将位于此文件夹中。
重要说明: 完成此步骤之前,您必须先在其 TFSService 帐户具有完全权限的生成代理计算机上创建一个公共文件夹。有关 Team Foundation 服务帐户的更多信息,请参见如何:查看 Team Foundation Server 服务。
说明: 产生的每个生成将放置在单独的目录中。您需要确保用于配置生成计算机的帐户具有对此 UNC 位置的写访问权限。
单击“触发器”选项卡。
在“触发器”窗格上,选择“签入不触发新生成”,以便仅按需生成。
选中“生成每个签入(生成较多)”,每次将更改签入到生成定义生成的文件中时连续生成。
选中“聚合签入,直到上一个生成完成(生成较少)”创建滚动生成。
如果选中“聚合签入,直到上一个生成完成(生成较少)”复选框,则可以通过选中“生成频率不超过”复选框并在“分钟”文本框中输入数字指示生成的发生频率。“分钟”文本框的有效范围是 0 到 2147483647 (Int32 MaxValue)。
选择“在每周的以下日子生成”以创建预定生成。通过为一周中的每一天提供的复选框来选择要执行生成操作的每一天。在“将此生成排在默认生成代理的以下位置”文本框中输入生成时间。
说明: 如果自上次生成之后未签入任何更改,则不会发生预定的生成。
填入所有必需的信息之后,单击“确定”创建生成定义。
创建的生成定义显示在团队资源管理器中的“生成”文件夹中。
若要查看服务器上存储的有关生成定义的信息,请右击团队资源管理器中的生成定义,再单击“编辑生成定义”。
即会出现“生成定义”对话框以及您填写的信息。您也可以在此处更改所输入的信息。有关更多信息,请参见 如何:编辑生成定义。
重要说明: 如果您的生成定义与另一个生成共享 TFSBuild.proj 文件,则您的生成定义以及相关联的文件不会显示在源代码管理资源管理器中的默认位置,即“TeamBuildTypes”文件夹下。此处只列出初始的生成定义。您也可以将 TFSBuild.proj 文件保存在另一位置。
建立生成权限
与您先前所选的生成计算机的系统管理员联系,以确定运行 Visual Studio Team Foundation Build 服务所用的帐户名。
从“团队”菜单中选择“团队项目设置”,然后选择“组成员资格”。
出现“项目组”对话框。
在“项目组”中,在“用户和组”列表下找到名为“Build Services”(生成服务)的组,然后单击“属性”。
将显示“Team Foundation Server 组属性”对话框。
选择“成员”选项卡。
如果在前一步中获取的帐户出现在成员列表中,则所选生成计算机可生成此生成定义。否则,请使用以下步骤:
在“添加成员”部分中选择“Windows 用户或组”,然后单击“添加”。
出现“选择用户或组”对话框。
在“选择用户或组”对话框中,输入与用于此生成定义的生成计算机上的 Visual Studio Team Foundation Build 服务相关联的帐户。
说明: 如果此生成定义在多个生成代理上生成,则所有 Visual Studio Team Foundation Build 服务帐户都需要添加到此项目的“Build Services”组中作为其成员。
通过授予其开始/继续生成权限配置哪些用户将运行生成定义。
请参见
任务
演练:在 Team Foundation Build 中运行生成定义
如何:为 Team Foundation Build 代理设置权限