Condividi tramite


Destinazioni personalizzabili di Team Foundation Build

Le destinazioni di MSBuild definiscono la modalità di compilazione di un progetto di MSBuild. Il file Microsoft.TeamFoundation.Build.targets definisce la gerarchia di destinazione e un insieme di attività di MSBuild e destinazioni per Team Foundation Build predefinite utilizzato per tutti i tipi di compilazione di Team Foundation Build. Le definizioni di compilazione includono un file di progetto denominato TFSBuild.proj. Il file di progetto può essere associato a una sola o a più definizioni di compilazione. Il file TfsBuild.proj importa il file Microsoft.TeamFoundation.Build.targets e fornisce valori per diverse proprietà e gruppi di elementi. È possibile personalizzare il file TfsBuild.proj per eseguire l'override di alcune delle destinazioni del punto di estensione all’interno della gerarchia. Il file delle destinazioni è situato in <radice>: \\Program Files\\MSBuild\\Microsoft\\VisualStudio\\TeamBuild sull'agente di compilazione.

Nota importanteImportante

Non modificare il file Microsoft.TeamFoundation.Build.targets.

Per ulteriori informazioni sulle destinazioni di MSBuild, vedere Destinazioni di MSBuild.

Destinazioni che possono essere personalizzate con le attività

Le attività sono contenute nelle destinazioni Le attività forniscono il codice che viene eseguito durante il processo di compilazione. Nella tabella seguente vengono elencate tutte le destinazioni di Team Foundation Build definite per l'estendibilità. Inserire le attività in una di queste destinazioni in base al momento in cui, durante il processo di compilazione, è necessario eseguire le attività personalizzate.

Nota

Non è consigliabile eseguire l’override di altre destinazioni.

Target Name

Descrizione

BeforeEndToEndIteration

Inserire l'attività in questa destinazione per eseguire attività personalizzate all'inizio del processo di compilazione.

AfterEndToEndIteration

Inserire l'attività in questa destinazione per eseguire attività personalizzate alla fine del processo di compilazione.

BeforeInitializeWorkspace

Inserire l'attività in questa destinazione per eseguire attività personalizzate prima dell’inizializzazione dell’area di lavoro.

AfterInitializeWorkspace

Inserire l'attività in questa destinazione per eseguire attività personalizzate dopo l’inizializzazione dell’area di lavoro.

BuildNumberOverrideTarget

Inserire l'attività in questa destinazione per personalizzare il numero di build o le proprietà della posizione di rilascio. L'attività scritta deve creare una proprietà di output denominata BuildNumber.

BeforeClean

Chiamata prima di tentare la pulizia. Inserire l'attività in questa destinazione per eseguire attività personalizzate prima di tentare la pulizia.

AfterClean

Chiamata dopo il completamento della pulizia. Inserire l'attività in questa destinazione per eseguire attività personalizzate dopo la pulizia.

BeforeGet

Chiamata prima del recupero delle origini dal controllo del codice sorgente. Inserire l'attività in questa destinazione per eseguire attività personalizzate prima del recupero delle origini.

AfterGet

Chiamata dopo il recupero delle origini. Inserire l'attività in questa destinazione per eseguire le attività personalizzate dopo il recupero delle origini.

BeforeLabel

Chiamata prima dell'assegnazione di un'etichetta alle origini. Inserire l'attività in questa destinazione per eseguire attività personalizzate prima della destinazione Label.

AfterLabel

Chiamata dopo il completamento dell'assegnazione delle etichette. Inserire l'attività in questa destinazione per eseguire attività personalizzate dopo la destinazione Label.

BeforeCompile

Chiamata prima dell'avvio della compilazione. Inserire l'attività in questa destinazione per eseguire attività personalizzate prima della compilazione dei file di codice.

BeforeCompileConfiguration

Inserire l'attività in questa destinazione per eseguire attività personalizzate prima della compilazione di una singola configurazione.

BeforeCompileSolution

Inserire l'attività in questa destinazione per eseguire le attività personalizzate prima della compilazione di una singola soluzione.

AfterCompileSolution

Inserire l'attività in questa destinazione per eseguire le attività personalizzate dopo la compilazione di una singola soluzione.

AfterCompileConfiguration

Inserire l'attività in questa destinazione per eseguire attività personalizzate dopo la compilazione di una singola configurazione.

AfterCompile

Chiamata dopo il completamento della compilazione. Inserire l'attività in questa destinazione per eseguire attività personalizzate dopo la compilazione dei file di codice.

BeforeGetChangesetsAndUpdateWorkItems

Inserire l'attività in questa destinazione per eseguire attività personalizzate prima che gli insiemi di modifiche vengano associati e che gli elementi di lavoro vengano aggiornati.

AfterGetChangesetsAndUpdateWorkItems

Inserire l'attività in questa destinazione per eseguire attività personalizzate dopo che gli insiemi di modifiche vengono associati e che gli elementi di lavoro vengono aggiornati.

BeforeTest

Chiamata prima dell'esecuzione dei test. Inserire l'attività in questa destinazione per eseguire attività personalizzate prima della destinazione Test.

BeforeTestConfiguration

Inserire l'attività in questa destinazione per eseguire attività personalizzate prima che venga effettuato il test di una singola configurazione.

AfterTestConfiguration

Inserire l'attività in questa destinazione per eseguire attività personalizzate dopo che è stato effettuato il test di una singola configurazione.

AfterTest

Chiamata dopo il completamento dei test. Inserire l'attività in questa destinazione per eseguire attività personalizzate dopo la destinazione Test.

BeforeDropBuild

Chiamata prima del salvataggio dei dati binari compilati, dei file di log di compilazione e dei risultati del test nella directory di destinazione della compilazione nel server di rilascio. Inserire l'attività in questa destinazione per eseguire attività personalizzate prima del salvataggio dei file compilati nella directory di destinazione.

AfterDropBuild

Chiamata dopo il rilascio dei binari compilati e dei risultati del test nel server di rilascio. Inserire l'attività in questa destinazione per eseguire attività personalizzate dopo il salvataggio dei file compilati nella directory di destinazione.

BeforeCreateWorkItem

Inserire l'attività in questa destinazione per eseguire attività personalizzate prima della creazione dell’elemento di lavoro.

AfterCreateWorkItem

Inserire l'attività in questa destinazione per eseguire attività personalizzate dopo la creazione dell’elemento di lavoro.

BeforeOnBuildBreak

Chiamata prima della creazione di un elemento di lavoro come risultato di un'interruzione di compilazione. Inserire l'attività in questa destinazione per eseguire attività personalizzate prima della destinazione BuildBreak.

AfterOnBuildBreak

Viene chiamato dopo la creazione di un elemento di lavoro come risultato di un interruzione di compilazione. Inserire l'attività in questa destinazione per eseguire attività personalizzate dopo la destinazione BuildBreak.

GenerateDocumentation

Si tratta di una destinazione vuota. Inserire l'attività in questa destinazione per generare la documentazione durante il processo di compilazione.

Eseguire l'override sulle destinazioni per eseguire attività personalizzate

Il codice dell'attività da scrivere deve essere associato a una destinazione. Per ulteriori informazioni, vedere Scrittura di attività. Per scrivere un'attività personalizzata, è necessario effettuare i passaggi seguenti.

  1. Scrivere il codice dell'attività e assicurarsi che i binari compilati siano disponibili sul computer di compilazione, fornendo il percorso del controllo del codice sorgente nel file TfsBuild.proj o rendendo disponibili i binari sul computer di compilazione stesso.

    Nota

    È consigliabile archiviare il codice dell'attività nel controllo del codice sorgente, ma non è assolutamente necessario.

  2. Registrare l'attività personalizzata nel file TfsBuild.proj dichiarandola utilizzando l'elemento UsingTask di MSBuild.

    Per ulteriori informazioni, vedere Elemento UsingTask (MSBuild).

    <UsingTask 
        TaskName="MyTasks.SimpleTask" 
        AssemblyName="MyAssembly.Build.Tasks"/>
    
  3. Eseguire l'attività inserendola nella destinazione desiderata nel file TfsBuild.proj.

    <Target Name="BeforeGet">
        <SimpleTask />
    </Target>
    

    Nota

    L'aggiunta di questo tag genera avvisi di XML Schema, che possono essere tranquillamente ignorati.

  4. Distribuire la DLL contenente l'attività personalizzata nel computer di compilazione.

    Nota importanteImportante

    La modifica verrà applicata a ogni definizione di compilazione associata al file TfsBuild.proj che viene personalizzato.

Ordine di esecuzione delle destinazioni

L'ordine di esecuzione delle destinazioni dipende dal valore della proprietà CleanCompilationOutputOnly. Se CleanCompilationOutputOnly è true, le destinazioni clean (BeforeClean, CoreClean e AfterClean) vengono eseguite dopo le destinazioni get e label (BeforeGet, CoreGet, AfterGet, BeforeLabel, CoreLabel e AfterLabel). Se la proprietà CleanCompilationOutputOnly è false, le destinazioni clean vengono eseguite prima delle destinazioni get e label. Se CleanCompilationOutputOnly è true, solo gli assembly intermedi vengono eliminati dalla directory di origine durante l'esecuzione della destinazione CoreClean. Se questa proprietà è impostata su false, l’intera cartella sorgente sarà eliminata durante esecuzione della destinazione CoreClean.

Nella tabella seguente viene illustrato l'elenco ordinato delle destinazioni eseguite in base alla possibilità che CleanCompilationOutputOnly sia true o false. Le destinazioni di cui è possibile eseguire l'override vengono visualizzate in grassetto.

CleanCompilationOutputOnly = true

CleanCompilationOutputOnly = false

  1. InitializeBuildProperties

  2. BeforeEndToEndIteration

  3. BuildNumberOverrideTarget

  4. InitializeEndToEndIteration

  5. BeforeInitializeWorkspace

  6. CoreInitializeWorkspace

  7. AfterinitializeWorkspace

  8. InitializeBuild

  9. BeforeGet

  10. CoreGet

  11. AfterGet

  12. BeforeLabel

  13. CoreLabel

  14. AfterLabel

  15. BeforeClean

  16. CoreCleanCompilationOutput

  17. AfterClean

  18. BeforeCompile

  19. CoreCompile (per ogni combinazione piattaforma/configurazione)

  20. BeforeCompileConfiguration

  21. CoreCompileConfiguration (per ogni soluzione da compilare)

  22. BeforeCompileSolution

  23. CoreCompileSolution

  24. AfterCompileSolution

  25. AfterCompileConfiguration

  26. AfterCompile

  27. BeforeGetChangesetsAndUpdateWorkItems

  28. CoreGetChangeSetsAndUpdateWorkItems

  29. AfterGetChangesetsAndUpdateWorkItems

  30. BeforeTest

  31. CoreTest (per ogni combinazione piattaforma/configurazione)

  32. BeforeTestConfiguration

  33. CoreTestConfiguration

  34. AfterTestConfiguration

  35. AfterTest

  36. GenerateDocumentation

  37. BeforeDropBuild

  38. CoreDropBuild

  39. AfterDropBuild

  40. AfterEndToEndIteration

  1. InitializeBuildProperties

  2. BeforeEndToEndIteration

  3. BuildNumberOverrideTarget

  4. InitializeEndToEndIteration

  5. BeforeInitializeWorkspace

  6. CoreInitializeWorkspace

  7. AfterInitializeWorkspace

  8. BeforeClean

  9. CoreClean

  10. AfterClean

  11. InitializeBuild

  12. BeforeGet

  13. CoreGet

  14. AfterGet

  15. BeforeLabel

  16. CoreLabel

  17. AfterLabel

  18. BeforeCompile

  19. CoreCompile (per ogni combinazione piattaforma/configurazione)

  20. BeforeCompileConfiguration

  21. CoreCompileConfiguration (per ogni soluzione da compilare)

  22. BeforeCompileSolution

  23. CoreCompileSolution

  24. AfterCompileSolution

  25. AfterCompileConfiguration

  26. AfterCompile

  27. BeforeGetChangesetsAndUpdateWorkItems

  28. CoreGetChangeSetsAndUpdateWorkItems

  29. AfterGetChangesetsAndUpdateWorkItems

  30. BeforeTest

  31. CoreTest (per ogni combinazione piattaforma/configurazione)

  32. BeforeTestConfiguration

  33. CoreTestConfiguration

  34. AfterTestConfiguration

  35. AfterTest

  36. GenerateDocumentation

  37. BeforeDropBuild

  38. CoreDropBuild

  39. AfterDropBuild

  40. AfterEndToEndIteration

La seguente lista specifica le destinazioni che vengono eseguite quando si verifica un errore durante l'esecuzione della destinazione CoreCompile. Le destinazioni di cui è possibile eseguire l'override vengono visualizzate in grassetto.

  1. SetBuildBreakProperties

  2. BeforeOnBuildBreak

  3. GetChangesetsOnBuildBreak

  4. BeforeDropBuild

  5. CoreDropBuild

  6. AfterDropBuild

  7. BeforeCreateWorkItem

  8. CoreCreateWorkItem

  9. AfterCreateWorkItem

  10. CoreOnBuildBreak

  11. AfterOnBuildBreak

Vedere anche

Concetti

Informazioni sui file di configurazione di Team Foundation Build

Proprietà personalizzabili di Team Foundation Build