Como posso desactivar a criação do item de trabalho no final de uma compilação Team Foundation falhou?
Pergunta
Eu estou usando Team Foundation Build, mas ainda não estamos usando TFS para rastreamento de problemas, então eu gostaria de desativar a criação de item de trabalho em uma compilação falhou. Há alguma maneira de fazer isso? Eu tentei comentar a informação de item de trabalho no arquivo TFSBuild.proj para o tipo de compilação, mas que não fazer o truque.
Solução
Tente adicionar este dentro do PropertyGroup em sua TFSBuild.proj:
<SkipWorkItemCreation>true</SkipWorkItemCreation>
Se você está curioso para saber como isso funciona, Microsoft.TeamFoundation.Build.targets contians o seguinte:
<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>
Você pode substituir qualquer um dos essa funcionalidade em seu próprio script de construção, mas a Microsoft fornecer a condição SkipWorkItemCreation acessível no topo, que você pode usar para cancelar a execução de todo o alvo.
Outras dicas
Se você estiver usando tfs2010 ou acima, você pode fazer isso na própria definição de compilação.
No guia Processo de definição de compilação definir a propriedade Create Work Item on failure
para false
(na seção Avançado)