我正在使用 Team Foundation Build,但我们尚未使用 TFS 进行问题跟踪,因此我想在失败的构建上禁用工作项创建。有没有办法做到这一点?我尝试在构建类型的 TFSBuild.proj 文件中注释掉工作项信息,但这并没有成功。
Luke
问问题
2611 次
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) <a href='file:///$(DropLocation)\$(BuildNumber)\BuildLog.txt'>$(DropLocation)\$(BuildNumber)\BuildLog.txt</a >.</BuildLogText>
<ErrorWarningLogText Condition="!Exists('$(MSBuildProjectDirectory)\ErrorsWarningsLog.txt')"></ErrorWarningLogText>
<ErrorWarningLogText Condition="Exists('$(MSBuildProjectDirectory)\ErrorsWarningsLog.txt')">$(ErrorWarningLogText) <a href='file:///$(DropLocation)\$(BuildNumber)\ErrorsWarningsLog.txt'>$(DropLocation)\$(BuildNumber)\ErrorsWarningsLog.txt</a >.</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 条件,您可以使用它来取消整个目标的执行。
于 2008-09-23T18:03:02.517 回答
0
如果您使用的是 tfs2010 或更高版本,您可以在构建定义本身中执行此操作。
在Build Definition的Process 选项卡Create Work Item on failure
中,将属性设置为false
(在 Advanced 部分下)
于 2018-07-19T10:59:08.483 回答