Reason 属性

更新:2007 年 11 月

重要说明:

此功能仅随 Service Pack 1 版的 Team Foundation Server 2008 提供。

在 Service Pack 1 版的 Team Foundation Server 2008 中,IBuildDetail 包含一个 Reason 属性,该属性是 BuildReason 类型的枚举。此属性显示生成的触发方式。有关更多信息,请参见如何:创建生成定义。允许的值如下:

  • Manual   此值指示,生成由用户通过团队资源管理器中的“使新生成入队”菜单命令手动启动。

  • IndividualCI   此值指示,生成由于签入而启动,生成定义配置为每次签入时生成。

  • BatchedCI   此值指示,生成由于一次或多次签入而启动,生成定义配置为累积签入。

  • Schedule   此值指示,生成由于计划在某个时间进行生成而启动,生成定义配置为在签入了更改时,定期进行生成。

  • ScheduleForced   此值指示,生成在所设置的时间启动,生成定义配置为无论是否签入了更改,都定期进行生成。

Reason 属性列在生成日志中。有关更多信息,请参见生成报告概述

Reason 属性也是 GetBuildDetails 任务的输出属性,且作为 MSBuild 属性在 TFSBuild.proj 文件中可用。可以使用此属性修改生成文件,具体取决于触发器。可以使用 Reason 属性执行下面的操作:

  • 区分由特定生成定义控制的生成是如何触发的。然后,您还可以根据生成触发器,将各个生成属性设置为不同的值,从而自定义生成输出。

  • 如果有多个生成定义配置为使用同一 TFSBuild.proj 文件,则可以区分特定的生成定义。

例如,如果要生成一个用于夜间生成的自定义内部版本号,可以将以下 XML 添加到 TFSBuild.proj 文件中:

<Target Name="BuildNumberOverrideTarget" Condition=" '$(Reason)' == 'Schedule' ">
    <MyBuildNumberGenerator TeamFoundationServerUrl="$(TeamFoundationServerUrl)" BuildUri="$(BuildUri)">
      <Output TaskParameter="BuildNumber" PropertyName="BuildNumber" />
    </MyBuildNumberGenerator>
</Target>

此外,必须注册并定义 MyBuildNumberGenerator 任务。有关更多信息,请参见如何:自定义内部版本号

请参见

概念

了解 Team Foundation Build 配置文件

其他资源

在 Team Foundation Build 中使用生成定义