¿Cómo puedo desactivar la creación de elementos de trabajo al final de una Team Foundation Build fallida?
Pregunta
Estoy usando Team Foundation Build pero aún no usamos TFS para el seguimiento de problemas, por lo que me gustaría deshabilitar la creación de elementos de trabajo en una compilación fallida.¿Hay alguna manera de hacer esto?Intenté comentar la información del elemento de trabajo en el archivo TFSBuild.proj para el tipo de compilación, pero no funcionó.
Solución
Intente agregar esto dentro del PropertyGroup en su TFSBuild.proj:
<SkipWorkItemCreation>true</SkipWorkItemCreation>
Si tiene curiosidad sobre cómo funciona esto, Microsoft.TeamFoundation.Build.targets contiene lo siguiente:
<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>
Puede anular cualquiera de estas funciones en su propio script de compilación, pero Microsoft proporciona la práctica condición SkipWorkItemCreation en la parte superior, que puede usar para cancelar la ejecución de todo el objetivo.
Otros consejos
Si está utilizando tfs2010 o superior, puede hacerlo en la definición de compilación.
En el Pestaña de proceso de Definición de compilación establece el Create Work Item on failure
propiedad a false
(en la sección Avanzado)