Come posso disabilitare la creazione di oggetti di lavoro al termine di una Team Foundation Build fallita?
Domanda
Sto utilizzando Team Foundation Build ma non stiamo ancora utilizzando TFS per il rilevamento dei problemi, quindi desidero disabilitare la creazione dell'elemento di lavoro su una build non riuscita. C'è un modo per fare questo? Ho provato a commentare le informazioni sull'elemento di lavoro nel file TFSBuild.proj per il tipo di build, ma non ha funzionato.
Soluzione
Prova ad aggiungere questo all'interno del gruppo di proprietà in TFSBuild.proj:
<SkipWorkItemCreation>true</SkipWorkItemCreation>
Se sei curioso di sapere come funziona, Microsoft.TeamFoundation.Build.targets segue quanto segue:
<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>
Puoi sovrascrivere una qualsiasi di queste funzionalità nel tuo script di compilazione, ma Microsoft fornisce la pratica condizione SkipWorkItemCreation nella parte superiore, che puoi utilizzare per annullare l'esecuzione dell'intera destinazione.
Altri suggerimenti
Se stai usando tfs2010 o superiore puoi farlo nella definizione di build stessa.
Nella scheda Processo di Definizione build impostare la proprietà Crea oggetto di lavoro in caso di errore
su false
(nella sezione Avanzate)