Team Foundation Build 任务
更新:2007 年 11 月
MSBuild 任务包含在目标中。这些任务提供在生成过程中运行的代码。MSBuild 提供了一个常见任务库。有关更多信息,请参见 MSBuild 任务参考。
Team Foundation Build 的 MSBuild .targets 文件(即 Microsoft.TeamFoundation.Build.targets)定义了多个默认的 Team Foundation Build 任务,您可以通过在 TfsBuild.proj 文件中设置各种属性对这些任务进行自定义。例如,CoreGet 目标包括一个 Get 任务,该任务使您可以检索生成类型的特定变更集。默认情况下,Get 任务会检索最新的文件。有关 .targets 文件的更多信息,请参见 MSBuild .Targets 文件。
Microsoft.TeamFoundation.Build.targets 中默认任务的列表
以下任务可以通过修改其属性进行自定义。
Team Foundation Build 任务 |
关联的目标 |
---|---|
同步生成计算机上的源文件。它还会引发日志事件以通知记录器检索到本地工作区的每个文件和版本。 |
Get |
标记指定工作区的所有源文件。 |
Label |
GenCheckinNotesUpdateWorkItems 任务 生成在生成过程中创建或受影响的所有变更集和工作项的列表。标签用于标记特定生成。 |
如果生成成功,则会调用 GetChangeSetsAndUpdateWorkitems 目标。 如果生成不成功,则会调用 GetChangeSetsOnBuildBreak 目标。 |
为生成过程中发生的故障创建新工作项。此外,该任务还会以指向特定内部版本号的链接更新工作项中的 Found In 字段。 |
CreateWorkItem |
在生成计算机上创建新工作区。 |
InitializeWorkspace |
删除在生成执行过程中创建的工作区。不会从生成计算机删除实际的文件。如果指定的工作区不存在,则 DeleteWorkspaceTask 会发出一个警告。 |
InitializeWorkspace |
UpdateBuildNumberDropLocation 任务 在指定位置创建文件夹以接收生成文件,并更新内部版本号。 |
InitializeEndToEndIteration |
在生成过程中运行一组测试,并发布结果。 |
RunTestWithConfiguration |
将生成步骤插入生成。 |
None |
输出生成属性的初始值。 |
InitializeBuildProperties |
设置任何可设置的生成属性。 |
None |
将版本控制服务器项目转换为本地工作区项目,以及将本地项目转换为版本控制服务器项目。 |
ResolveSolutionPathsForEndToEndIteration 和ResolveTestFilesForEndToEndIteration |
修改 Team Foundation Build 任务
若要修改定义文件 Microsoft.TeamFoundation.Build.targets 中定义的任务,请检查要修改的任务的属性,并在 Team Foundation Build 生成类型的 TfsBuild.proj 文件中指定这些属性。CreateNewWorkItem 任务定义如下。
<!-- Create WorkItem for build failure -->
<CreateNewWorkItem
BuildId="$(BuildNumber)"
Description="$(WorkItemDescription)"
TeamProject="$(TeamProject)"
TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
Title="$(WorkItemTitle)"
WorkItemFieldValues="$(WorkItemFieldValues)"
WorkItemType="$(WorkItemType)"
ContinueOnError="true" />
若要自定义在生成失败时所创建的工作项,请设置 TFSBuild.proj 文件中的 WorkItemFieldValues:
说明: |
---|
下面的示例假设还设置了 Areapath 和 IterationPath 属性。 |
<WorkItemFieldValues>Area Path=$(AreaPath);Iteration Path=$(IterationPath);Severity=1;Priority=0;Symptom=build break;Steps To Reproduce=Start the build using Team Build;Source=Development;How Found=Build Break;Assigned To=Active</WorkItemFieldValues>