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 任务。有关更多信息,请参见如何:自定义内部版本号。