如何在 Team Foundation Build 失败时禁用工作项创建?

13

我正在使用 Team Foundation Build,但我们还没有将 TFS 用于问题跟踪,因此我希望在构建失败时禁用工作项的创建。有什么方法可以实现这一点吗?我尝试在 TFSBuild.proj 文件中针对构建类型注释掉了工作项信息,但这并没有起作用。

2个回答

23

尝试将以下内容添加到TFSBuild.proj中的PropertyGroup中:

<SkipWorkItemCreation>true</SkipWorkItemCreation>
如果你想知道这是如何运作的,Microsoft.TeamFoundation.Build.targets 包含以下内容:
  <Target Name="CoreCreateWorkItem"
          Condition=" '$(SkipWorkItemCreation)'!='true' and '$(IsDesktopBuild)'!='true' "
          DependsOnTargets="$(CoreCreateWorkItemDependsOn)">

    <PropertyGroup>
      <WorkItemTitle>$(WorkItemTitle) $(BuildNumber)</WorkItemTitle>
      <BuildLogText>$(BuildlogText) &lt;a href='file:///$(DropLocation)\$(BuildNumber)\BuildLog.txt'&gt;$(DropLocation)\$(BuildNumber)\BuildLog.txt&lt;/a &gt;.</BuildLogText>
      <ErrorWarningLogText Condition="!Exists('$(MSBuildProjectDirectory)\ErrorsWarningsLog.txt')"></ErrorWarningLogText>
      <ErrorWarningLogText Condition="Exists('$(MSBuildProjectDirectory)\ErrorsWarningsLog.txt')">$(ErrorWarningLogText) &lt;a href='file:///$(DropLocation)\$(BuildNumber)\ErrorsWarningsLog.txt'&gt;$(DropLocation)\$(BuildNumber)\ErrorsWarningsLog.txt&lt;/a &gt;.</ErrorWarningLogText>
      <WorkItemDescription>$(DescriptionText) %3CBR%2F%3E $(BuildlogText) %3CBR%2F%3E $(ErrorWarningLogText)</WorkItemDescription>
    </PropertyGroup>

    <CreateNewWorkItem
          TeamFoundationServerUrl="$(TeamFoundationServerUrl)"
          BuildUri="$(BuildUri)"
          BuildNumber="$(BuildNumber)"
          Description="$(WorkItemDescription)"
          TeamProject="$(TeamProject)"
          Title="$(WorkItemTitle)"
          WorkItemFieldValues="$(WorkItemFieldValues)"
          WorkItemType="$(WorkItemType)"
          ContinueOnError="true" />

  </Target>

你可以在自己的构建脚本中覆盖任何此功能,但 Microsoft 在顶部提供了一个方便的 SkipWorkItemCreation 条件,您可以使用它来取消执行整个目标。


0
如果您正在使用TFS2010或更高版本,您可以在构建定义本身中执行此操作。
在构建定义的“进程”选项卡中,将“在失败时创建工作项”属性设置为“false”(在“高级”部分下)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接