演练:使用 BuildStep 任务添加生成步骤
更新:2007 年 11 月
BuildStep 任务是一个专为 Team Foundation Server 编写的 MSBuild 任务。在解决方案生成定义的 TFSBuild.proj 文件的 Target 元素中,添加一个或多个 BuildStep 元素来向生成中添加 BuildStep 任务。
先决条件
在向生成定义中添加 BuildStep 任务之前,必须满足以下先决条件:
访问要自定义的生成定义的 TFSBuild.proj 文件的权限。有关如何创建生成定义的更多信息,请参见如何:创建生成定义。
重要说明: 自定义 TFSBuild.proj 文件时,需要自定义与该文件关联的每个生成定义。
一个包含团队项目文件和生成文件的本地工作区。有关更多信息,请参见如何:创建映射的工作区和如何:获取团队项目的源代码。
必需的权限
若要执行本主题中的过程,必须将“签入”和“签出”权限设置为“允许”。有关更多信息,请参见 Team Foundation Server 权限。
若要使用 BuildStep 任务添加生成步骤,请执行以下过程:
向项目文件中添加一个任务
向项目文件中添加一个信息性生成步骤
向项目文件中添加一个任务
可以使用 BuildStep 任务添加和更新生成步骤。此过程介绍如何按如下所述修改 TFSBuild.proj 文件:
添加生成步骤。
执行任务。
如果任务成功,则以“成功”状态更新此生成步骤;如果任务未成功,则以“失败”状态更新此生成步骤。
此示例中的生成步骤任务将源文件复制到新位置。
将一个生成步骤添加并更新到 TFSBuild.proj 文件中
启动 Visual Studio。
从 Team Foundation 版本控制签出要修改的 TFSBuild.proj 文件,并将它在 Visual Studio XML 编辑器中打开。
将下面的 XML 添加到 <ItemGroup> 元素。可以将 XML 添加到现有的 <ItemGroup> 元素,也可以决定添加一个新的 <ItemGroup> 元素:
说明: 此步骤中的代码标识要复制的源文件所在的文件夹。其他 MSBuild 任务可能还需要向 XML 中添加其他内容。有关 MSBuild 任务的要求的更多信息,请参见 MSBuild 任务参考。
<ItemGroup> <SourceFileFolder Include="C:\WorkingFolder\TeamBuildTypes\**\*.cs" /> </ItemGroup>
将下面的 XML 添加到 TFSBuild.proj 文件的末尾,并置于 </Project> 元素的前面:
</ItemGroup> <Target Name="BeforeCompile"> <BuildStep TeamFoundationServerUrl="$(TeamFoundationServerUrl)" BuildUri="$(BuildUri)" Message="Working..."> <Output TaskParameter="Id" PropertyName="StepId" /> </BuildStep> <!-- Perform a task... --> <Copy SourceFiles="@(SourceFileFolder)" DestinationFolder="C:\NewSourceFileFolder" /> <BuildStep TeamFoundationServerUrl="$(TeamFoundationServerUrl)" BuildUri="$(BuildUri)" Id="$(StepId)" Status="Succeeded" /> <OnError ExecuteTargets="MarkBuildStepAsFailed" /> </Target> <Target Name="MarkBuildStepAsFailed"> <BuildStep TeamFoundationServerUrl="$(TeamFoundationServerUrl)" BuildUri="$(BuildUri)" Id="$(StepId)" Status="Failed" /> </Target> </Project>
说明: 有关 Team Foundation Build 目标的更多信息以及可自定义的目标的列表,请参见可自定义的 Team Foundation Build 目标。
保存更改,然后关闭 TFSBuild.proj。
将 TFSBuild.proj 文件签入到版本控制中。
运行该生成定义。
有关更多信息,请参见如何:启动生成定义或对其进行排队。
可以在生成资源管理器中查看生成步骤消息,并且可以在生成日志中看到完整的生成步骤创建和更新过程。还会在您指定的目录中看到复制的文件。有关更多信息,请参见如何:监视生成过程。
向项目文件中添加一个信息性生成步骤
如果不必执行任务,但需要添加一个信息性的生成步骤,则不要使用 Id Output 属性,而应直接设置状态。此过程仅仅在生成过程中添加当您在生成资源管理器中打开生成时看到的消息。
将一个信息性的生成步骤添加到 TFSBuild.proj 文件中
启动 Visual Studio。
从 Team Foundation 版本控制签出要修改的 TFSBuild.proj 文件,并将它在 Visual Studio XML 编辑器中打开。
将下面的 XML 添加到 TFSBuild.proj 文件的末尾,并置于 </Project> 标记的前面:
</ItemGroup> <Target Name="AfterCompile"> <BuildStep TeamFoundationServerUrl="$(TeamFoundationServerUrl)" BuildUri="$(BuildUri)" Message="Compile step complete." Status="Succeeded" /> </Target> </Project>
说明: 有关 Team Foundation Build 目标的更多信息以及可自定义的目标的列表,请参见可自定义的 Team Foundation Build 目标。
保存更改,然后关闭 TFSBuild.proj。
将 TFSBuild.proj 文件签入到版本控制中。
运行该生成定义。
有关更多信息,请参见如何:启动生成定义或对其进行排队。
可以在生成资源管理器和生成日志中查看此消息。有关更多信息,请参见如何:监视生成过程。