如何:将 Team Foundation Build 配置为增量生成
更新:2007 年 11 月
增量生成重新使用由 Team Foundation Build 维护的上一次生成的结果,以根据上次生成后所做的更改执行优化的生成。
在创建增量生成的生成定义后,运行第一个生成。此操作将创建所需的工作区并将所有源文件获取到生成计算机上。
先决条件
在完成此任务之前,您必须具备以下条件:
访问要进行自定义的生成类型的 TfsBuild.proj 文件的权限。
每个团队生成定义都有一个关联的 TFSBuild.proj 文件,该文件位于 Team Foundation 版本控制中的文件夹 $/我的团队项目/TeamBuildTypes/我的生成名称 中。MyTeamProject 是团队项目的名称,是所有团队项目源的根节点。我的生成名称 是为生成定义指定的名称。有关如何创建 Team Foundation Build 生成类型的更多信息,请参见如何:创建生成定义。
一个位于本地计算机上的本地工作区,其中包含团队项目文件和生成文件。
有关更多信息,请参见如何:创建映射的工作区和如何:获取团队项目的源代码。
必需的权限
若要完成此任务,必须将“管理生成”和“管理工作区”的权限设置为“允许”。还必须将“签入”和“签出”权限设置为“允许”。有关更多信息,请参见 Team Foundation Server 权限。
在更改用于定义生成定义的 TFSBuild.proj 文件之前,必须先获取一个本地副本。
在“视图”菜单上选择“其他窗口”,然后选择“源代码管理资源管理器”。
在“源代码管理资源管理器”中单击工具栏上的“工作区”,然后从列表中选择您的工作区。
打开包含生成类型的团队项目文件夹,然后展开“TeamBuildTypes”文件夹。
右击 TFSBuild.proj 文件,然后选择“获取最新版本”以复制文件的最新版本。
有关更多信息,请参见如何:获取团队项目的源代码。
若要指定增量生成,必须设置 TFSBuild.proj 文件中的 IncrementalBuild 属性。
使用 IncrementalBuild 属性,可以很方便将 SkipClean 设置为 true、将 SkipInitializeWorkspace 设置为 true 以及将 ForceGet 设置为 false。
Team Foundation Build 在执行完整生成时将清除 Clean 目标中的中间生成文件夹和源文件夹内的文件。在增量生成中必须跳过此目标,因为这些文件必须保持不变以用于下一次生成。为此,请将 SkipClean 设置为 true。
作为完整生成的一部分,Team Foundation Build 将删除旧工作区并重新创建新的工作区,以清除并同步源文件。在增量生成中也必须跳过此目标。为此,请将 SkipInitializeWorkspace 设置为 true。
在 Get 任务中,Team Foundation Build 默认情况下检索新的源文件并覆盖生成工作区中的现有文件。若要检索更改的文件,请将属性 ForceGet 设置为 false。
若要将 IncrementalBuild 属性设置为 true,请将 PropertyGroup 定义添加到 TFSBuild.proj 文件的末尾、结束 </project> 标记之前。
</ItemGroup> <PropertyGroup> <IncrementalBuild>true</IncrementalBuild> </PropertyGroup> </Project>
演练:通过自定义任务自定义 Team Foundation Build