演练:使用 BuildStep 任务添加生成步骤

更新:2007 年 11 月

BuildStep 任务是一个专为 Team Foundation Server 编写的 MSBuild 任务。在解决方案生成定义的 TFSBuild.proj 文件的 Target 元素中,添加一个或多个 BuildStep 元素来向生成中添加 BuildStep 任务。

先决条件

在向生成定义中添加 BuildStep 任务之前,必须满足以下先决条件:

必需的权限

若要执行本主题中的过程,必须将“签入”和“签出”权限设置为“允许”。有关更多信息,请参见 Team Foundation Server 权限

若要使用 BuildStep 任务添加生成步骤,请执行以下过程:

  • 向项目文件中添加一个任务

  • 向项目文件中添加一个信息性生成步骤

向项目文件中添加一个任务

可以使用 BuildStep 任务添加和更新生成步骤。此过程介绍如何按如下所述修改 TFSBuild.proj 文件:

  1. 添加生成步骤。

  2. 执行任务。

  3. 如果任务成功,则以“成功”状态更新此生成步骤;如果任务未成功,则以“失败”状态更新此生成步骤。

此示例中的生成步骤任务将源文件复制到新位置。

将一个生成步骤添加并更新到 TFSBuild.proj 文件中

  1. 启动 Visual Studio。

  2. 从 Team Foundation 版本控制签出要修改的 TFSBuild.proj 文件,并将它在 Visual Studio XML 编辑器中打开。

  3. 将下面的 XML 添加到 <ItemGroup> 元素。可以将 XML 添加到现有的 <ItemGroup> 元素,也可以决定添加一个新的 <ItemGroup> 元素:

    说明:

    此步骤中的代码标识要复制的源文件所在的文件夹。其他 MSBuild 任务可能还需要向 XML 中添加其他内容。有关 MSBuild 任务的要求的更多信息,请参见 MSBuild 任务参考

    <ItemGroup>
        <SourceFileFolder Include="C:\WorkingFolder\TeamBuildTypes\**\*.cs" />
    </ItemGroup>
    
  4. 将下面的 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 目标

  5. 保存更改,然后关闭 TFSBuild.proj。

  6. 将 TFSBuild.proj 文件签入到版本控制中。

  7. 运行该生成定义。

    有关更多信息,请参见如何:启动生成定义或对其进行排队

    可以在生成资源管理器中查看生成步骤消息,并且可以在生成日志中看到完整的生成步骤创建和更新过程。还会在您指定的目录中看到复制的文件。有关更多信息,请参见如何:监视生成过程

向项目文件中添加一个信息性生成步骤

如果不必执行任务,但需要添加一个信息性的生成步骤,则不要使用 Id Output 属性,而应直接设置状态。此过程仅仅在生成过程中添加当您在生成资源管理器中打开生成时看到的消息。

将一个信息性的生成步骤添加到 TFSBuild.proj 文件中

  1. 启动 Visual Studio。

  2. 从 Team Foundation 版本控制签出要修改的 TFSBuild.proj 文件,并将它在 Visual Studio XML 编辑器中打开。

  3. 将下面的 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 目标

  4. 保存更改,然后关闭 TFSBuild.proj。

  5. 将 TFSBuild.proj 文件签入到版本控制中。

  6. 运行该生成定义。

    有关更多信息,请参见如何:启动生成定义或对其进行排队

    可以在生成资源管理器和生成日志中查看此消息。有关更多信息,请参见如何:监视生成过程

请参见

参考

BuildStep 任务

其他资源

MSBuild 任务引用

MSBuild 项目文件架构引用