Utilizzare il modello predefinito per il processo di compilazione

Il modello predefinito (TFVC icon TfvcTemplate.12.xaml o Git icon GitTemplate.12.xaml) consente di definire rapidamente un processo base per la compilazione e il test del codice. Se si desidera, è possibile controllare la modalità di compilazione del codice e di esecuzione dei test e di altri processi, ad esempio script, da parte di Team Foundation Build (TFBuild).

Introduzione

  1. (Facoltativo) Prima di creare una nuova definizione di compilazione, nella home page di Team Explorer (tastiera: CTRL + 0, H) aprire la soluzione da compilare in modo che venga specificata automaticamente nella casella Progetti.

  2. In Team Explorer verificare di avere stabilito la connessione al progetto Team (tastiera: CTRL + 0, C), quindi aprire la pagina Compilazioni (tastiera: CTRL + 0, B).

  3. Scegliere il collegamento Nuova definizione di compilazione oppure selezionare una compilazione, aprire il menu di scelta rapida e scegliere Modifica definizione di compilazione.

    Suggerimento

    Se viene visualizzato un messaggio di errore TF225001, configurare un controller di compilazione.

  4. Nella scheda Processo Modello predefinito è selezionato per impostazione predefinita in Modello di processo di compilazione.

    Default Template build process

    Avviso

    Si è connessi a un Git iconteam di progetto Git ospitato in Visual Studio Online?I parametri Estrai override e Progetti non sono disponibili?

    Parameters from the wrong Git default template

    Vedere Come verificare se si usa il modello di processo di compilazione Git predefinito corretto in Visual Studio Online

  5. Usare le informazioni riportate più avanti in questo argomento per completare i campi che forniscono la funzionalità da inserire in questa definizione di compilazione.

  6. Dopo aver completato i campi nella scheda Processo, specificare le opzioni del processo di compilazione nelle altre schede.

    Per altre informazioni, vedere Creare o modificare una definizione di compilazione.

Scegliere l'argomento successivo con cui si desidera procedere

  • Ottenere il codice

  • Compilare il codice

    • Specificare i progetti da compilare

    • Specificare le piattaforme e le configurazioni da compilare

    • Specificare le opzioni di compilazione

  • Testare il codice e analizzare l'impatto del test

  • Eseguire altri processi durante la compilazione

  • Controllare il modo in cui i server eseguono la compilazione

    • Specificare quali agenti di compilazione elaborano la compilazione

    • Specificare i limiti di tempo dell'agente di compilazione

  • Controllare il risultato della compilazione

    • Specificare il percorso di output di compilazione

    • Fare in modo che i nomi delle compilazioni completate siano utili per il team

    • Pubblicare i simboli dalla compilazione

    • Associare e creare elementi di lavoro

    • Creare un elemento di lavoro in caso di errore

    • Etichettare il codice sorgente

  • Ottenere risposte alle domande comuni

Ottenere il codice

È possibile impostare alcune opzioni per definire il modo in cui l'agente di compilazione ottiene il codice sorgente specificato nella scheda Impostazioni di origine.

Per...

Impostare il parametro…

Seguendo queste informazioni aggiuntive…

Specificare se deve essere eseguita la pulizia dell'area di lavoro o del repository Git nell'agente di compilazione prima dell'elaborazione della compilazione

TFVC icon TFVC: Pulizia ambiente di lavoro

Git icon Git: Repository pulito

Selezionare True per eliminare tutti gli output e i file di codice sorgente esistenti prima che venga elaborata la compilazione. Usare questa opzione se si desidera un'esposizione dei problemi del processo di compilazione il più completa possibile.

Suggerimento

Se per il processo di compilazione non è richiesta un'area di lavoro o un repository pulito, è possibile ridurre notevolmente il tempo necessario per eseguire la compilazione impostando questo parametro su False.

Questa impostazione non ha alcun effetto se si usa il Controller di compilazione ospitato. In questo caso, si ottiene una nuova directory di lavoro con ogni compilazione.

Compilare una versione specifica del codice sorgente

TFVC icon TFVC: Leggi versione

Git icon Git: Estrai override

TFVC: specificare l'elemento versionspec che identifica la versione che si desidera compilare.

Git: specificare l'ID del branch o del commit da estrarre.

Compilare il codice

È possibile usare MSBuild per compilare il codice.

Specificare i progetti da compilare

Nella casella Progetti in Compila, nella tabella Parametri processo di compilazione, è possibile specificare uno o più progetti di codice o soluzioni da compilare. È necessario specificare almeno una soluzione o un progetto.

Se si compilano diversi progetti correlati, è solitamente necessario aggiungerli a un'unica soluzione e specificare tale soluzione nella cella Progetti anziché elencare ogni progetto separatamente.

Nella casella Progetti è possibile scegliere il pulsante con i puntini di sospensione (...) per aprire e usare la finestra di dialogo Soluzioni/Progetti per specificare le soluzioni o i progetti da compilare.

Per compilare manualmente la casella Progetti per un progetto team TFVC, specificare il percorso completo del controllo della versione per ogni progetto o soluzione che si desidera compilare. Delimitate ogni valore con una virgola, come illustrato nell'esempio seguente:

$/Features/FeatureA/Server/All Server Projects.sln, $/Features/FeatureA/Client/All Client Projects.sln

Importante

Se si usa TFVC, assicurarsi che il percorso di ogni progetto o soluzione sia un elemento figlio di uno dei valori di Cartella del controllo del codice sorgente elencati nella scheda Impostazioni di origine della definizione di compilazione.Se si usa Git, assicurarsi che il progetto o la soluzione sia presente nel repository Git, in un branch in corso di compilazione.

Specificare le piattaforme e le configurazioni da compilare

Nella casella Configurazioni è possibile specificare quali piattaforme e configurazioni si desidera compilare. Ad esempio, includendo Versione|x86 in questa casella è possibile specificare che per questa compilazione dovrà essere compilata solo la configurazione per il rilascio della versione a 32 bit del progetto C++.

Suggerimento

Se si dispone di una codebase di grandi dimensioni, è possibile aumentare significativamente la velocità di elaborazione della compilazione compilando solo le configurazioni e le piattaforme necessarie.

Se si lascia vuota la casella Configurazioni, verranno compilate la configurazione e la piattaforma definite in ogni soluzione o progetto.

Nella casella Configurazioni è possibile scegliere il pulsante con i puntini di sospensione (...) per aprire e usare la finestra di dialogo Configurazioni per specificare gli elementi da compilare. È inoltre possibile specificare tali elementi manualmente.

Ogni configurazione nella casella Configurazioni deve essere espressa nel seguente formato:

Configurazione|Piattaforma

È necessario sostituire i seguenti segnaposto:

  • Configurazione è un valore quale Debug, Versione o Tutte le configurazioni.

  • Piattaforme è un valore quale Win32, x86, x64 o Qualsiasi CPU.

Nell'elenco le configurazioni devono essere delimitate da virgole.

Ad esempio, se si desidera compilare entrambe le configurazioni Debug e Release del progetto C#, nella casella Configurazioni specificare Debug|Qualsiasi CPU, Release|Qualsiasi CPU.

I token usati per la configurazione e la piattaforma devono corrispondere ai token impostati nelle proprietà della soluzione o nelle proprietà del progetto di codice. Se non corrispondono, è possibile che al completamento della compilazione si verifichino risultati imprevisti.

Nota

Se si compilano singoli progetti di codice anziché un file di soluzione e si desidera specificare Qualsiasi CPU come piattaforma, è necessario specificarla come AnyCPU anziché Qualsiasi CPU.

Specificare le opzioni di compilazione

È possibile controllare diverse opzioni di compilazione.

Per...

Impostare il parametro…

Seguendo queste informazioni aggiuntive…

Controllare se ricompilare

Compila, Compilazione pulita

Impostare su True se si desidera ricompilare tutto il codice nei progetti di codice. Equivale a MSBuild /target:clean. Questa opzione non ha effetto pratico a meno che Repository pulito non venga impostato su False.

Suggerimento

È possibile ridurre notevolmente il tempo necessario per la compilazione di codebase di grandi dimensioni impostando questa opzione su False.

Convalidare il codice in base ai diagrammi livello

Compila, Avanzate, Argomenti MSBuild

Includere la stringa seguente nel valore di questo parametro: /p:ValidateArchitecture=true.

Per altre informazioni, vedere Convalidare il codice con diagrammi livello.

Specificare gli argomenti della riga di comando da passare a MSBuild.

Compila, Avanzate, Argomenti MSBuild

Se il processo di compilazione richiede il passaggio di argomenti a MSBuild, inserirli nel parametro Argomenti MSBuild. Per altre informazioni, vedere Riferimenti alla riga di comando di MSBuild.

Specificare il numero di bit della versione MSBuild usati per elaborare la compilazione

Compila, Avanzate, Piattaforma MSBuild

Specificare uno dei seguenti valori:

  • Specificare Auto se si desidera eseguire MSBuild con lo stesso numero di bit della CPU del servizio Team Foundation Build installato nell'agente di compilazione.

  • Specificare X86 per elaborare sempre questa compilazione usando la versione a 32 bit di MSBuild.

    Poiché Visual Studio viene eseguito come un'applicazione a 32 bit, si possono verificare problemi quando la compilazione viene elaborata da un agente di compilazione che esegue la versione a 64 bit del servizio Team Foundation Build. Specificando X86, è possibile risolvere questi tipi di problemi.

Se si specifica questo valore, è necessario assicurarsi che la compilazione venga elaborata da un agente di compilazione ospitato da un computer di compilazione a 64 bit, usando ad esempio un tag come spiegato precedentemente in questo argomento. In caso contrario, la compilazione non verrà completata.

Eseguire altri processi

È possibile eseguire altri processi durante la compilazione.

Eseguire l'analisi del codice

Per trovare difetti comuni durante la compilazione, è possibile analizzare il codice. Impostare il parametro Esegui analisi codice nei parametri di compilazione avanzati.

  • Selezionare Come configurato per analizzare ogni progetto di codice nel quale è abilitata questa funzionalità.

  • Selezionare Sempre per analizzare ogni progetto di codice, indipendentemente dal fatto che questa funzionalità sia abilitata o meno nei progetti di codice.

  • Selezionare Mai per ignorare l'analisi codice.

Per altre informazioni, vedere uno degli argomenti seguenti:

Controllare il modo in cui i server eseguono la compilazione

È possibile controllare il modo in cui i server di compilazione eseguono la compilazione

Specificare quali agenti di compilazione elaborano la compilazione

Per specificare quali agenti di compilazione vengono usati per elaborare la compilazione, espandere il nodo Avanzate, espandere il nodo Impostazioni agente, quindi specificare i valori per i seguenti parametri:

  • Filtro nomi: è possibile filtrare gli agenti di compilazione usati per elaborare questa definizione di compilazione digitando il nome dell'agente in questo campo. È inoltre possibile specificare un set di nomi usando i caratteri jolly * e ?. Ad esempio, è possibile specificare CI * per indicare qualsiasi agente il cui nome inizia con i caratteri CI. Gli agenti che possono corrispondere a questi criteri includono CI, CI1 o CI_Agente2.

  • Filtro tag: specificare uno o più tag per assicurarsi che solo gli agenti di compilazione con tag corrispondenti eseguiranno questa compilazione. In genere si applicano i tag a determinati agenti di compilazione per riservarli per scopi speciali. Ad esempio, viene impostato un agente di compilazione su un computer di compilazione progettato per elaborare le compilazioni di archiviazione gestita. Viene applicato il tag gestito a questo agente di compilazione. Infine viene applicato il tag gestito alla definizione di compilazione in modo che venga elaborata solo dall'agente anch'esso contrassegnato con il tag gestito. Per specificare tag, scegliere il pulsante con i puntini di sospensione (...).

    Nota

    Il pool di agenti di compilazione disponibili per l'elaborazione di questa compilazione è determinato dal controller di compilazione specificato per questa definizione di compilazione.Per modificare il controller di compilazione, scegliere la scheda Impostazioni predefinite compilazione, quindi scegliere un controller di compilazione dal menu Controller di compilazione.

  • Operatore di confronto tag: dal menu scegliere uno dei seguenti valori:

    • MatchExactly: scegliere questo valore se si desidera che questa definizione di compilazione venga elaborata solo dagli agenti di compilazione che hanno esattamente lo stesso set di tag specificato nella casella Filtro tag. Se non si specifica alcun tag, la definizione di compilazione potrà essere elaborata da qualsiasi agente.

      Suggerimento

      Scegliendo MatchExactly, si limitano gli agenti disponibili per questa definizione di compilazione solo a quelli che dispongono esattamente dello stesso set di tag specificato nel campo Filtro tag.

    • MatchAtLeast: scegliere su questo valore se si desidera che questa definizione di compilazione venga elaborata da qualsiasi agente che abbia almeno lo stesso set di tag specificato nella casella Filtro tag. Se non si specifica alcun tag, la definizione di compilazione potrà essere elaborata solo da agenti privi di tag.

Specificare i limiti di tempo dell'agente di compilazione

Per specificare limiti di tempo, espandere il nodo Avanzate, espandere il nodo Impostazioni agente, quindi specificare i parametri riportati nella tabella seguente.

Per...

Impostare il parametro…

Seguendo queste informazioni aggiuntive…

Specificare il tempo massimo consentito all'agente di compilazione per elaborare la compilazione

Tempo massimo di esecuzione

Immettere un valore per l'intervallo di tempo nel formato hh:mm:ss. Ad esempio, la compilazione non verrà completata e restituirà un errore di timeout se si specifica il valore 04.30.15 e l'agente di compilazione non ha completato il lavoro dopo 4 ore, 30 minuti e 15 secondi. Specificare il valore 00.00.00 se si desidera assegnare all'agente di compilazione un tempo illimitato per elaborare la compilazione.

Specificare il tempo massimo consentito per assegnare la richiesta di compilazione a un agente di compilazione

Tempo massimo di attesa

Immettere un valore per l'intervallo di tempo nel formato hh:mm:ss. Ad esempio, la compilazione non verrà completata e restituirà un errore di timeout se si specifica il valore 01.30.45 e la compilazione non è stata assegnata a un agente di compilazione dopo 1 ora, 30 minuti e 45 secondi. Specificare il valore 00.00.00 se si desidera assegnare al controller di compilazione un tempo illimitato per trovare un agente di compilazione per elaborare la definizione di compilazione.

Controllare il risultato della compilazione

Specificare il percorso di output di compilazione

Per controllare la posizione in cui TFBuild inserisce gli output di compilazione, scegliere:

  • SingleFolder per posizionare insieme tutti i file di output compilati nella cartella di ricezione.

  • PerProject per raggruppare gli output di compilazione in sottocartelle della cartella di ricezione per ogni soluzione o progetto di codice specificato nella casella Progetti.

  • AsConfigured per lasciare i binari nella cartella origini agente di compilazione, organizzati nella stessa struttura di sottocartelle visualizzata quando si compila il codice nel computer di sviluppo in Visual Studio. Questa struttura è definita nei progetti di codice.

    Se si usa questa opzione, tramite TFBuild non verrà copiato l'output nella cartella di ricezione. È invece possibile pianificare script per copiare gli output nella posizione specificata da TF_BUILD_BINARIESDIRECTORY in modo che vengano rilasciati nella posizione per la definizione di compilazione. Vedere script successivi alla compilazione o ai test.

Fare in modo che i nomi delle compilazioni completate siano utili per il team

È possibile usare Avanzate, Formato numero build per caricare dati utili nel nome di ogni compilazione completata. Per i valori validi per questo parametro, vedere Utilizzare i numeri di build per assegnare nomi significativi alle compilazioni completate.

Pubblicare i simboli dalla compilazione

Specificare il parametro Percorso per pubblicare i simboli per indicizzare e pubblicare i dati dei simboli in modo da abilitare funzionalità quale il debug cronologico. Vedere Indicizzare e pubblicare i dati dei simboli.

Associare insiemi di modifiche, commit ed elementi di lavoro

Il processo di compilazione collega automaticamente ogni compilazione completata a tutti gli insiemi di modifiche o commit inseriti nel codice, così come gli elementi di lavoro associati. Non è possibile disabilitare questo comportamento, ma in Avanzate è possibile definire se attivare o meno l'opzione Aggiorna gli elementi di lavoro con il numero build selezionando True o False.

Come si determina quando il processo di compilazione associa insiemi di modifiche, commit ed elementi di lavoro?

Creare un elemento di lavoro in caso di errore

Per Avanzate, Crea un elemento di lavoro in caso di errore, selezionare True se si desidera che quando la compilazione non riesce il processo di compilazione crei un bug e lo assegni alla persona che TFVC icon ha archiviato l'insieme di modifiche TFVC o Git icon ha sottoposto a push il commit Git.

Etichettare il codice sorgente

Per TFVC icon Controllo versione TF, Origini etichette selezionare True se si desidera contrassegnare automaticamente ogni file di codice sorgente con un'etichetta, per consentire al team di identificare facilmente quale versione di ogni file è inclusa nella compilazione completata. Questa impostazione non si applica ai progetti team Git Git icon.

Per informazioni su come TFBuild determina la versione da etichettare, vedere l'articolo relativo alla qualità della build

Domande e risposte

Come verificare se si usa il modello di processo di compilazione Git predefinito corretto in Visual Studio Online

Si è connessi a un Git iconteam di progetto Git ospitato in Visual Studio Online? I parametri Estrai override e Progetti non sono disponibili?

Quando si visualizzano i dettagli, viene visualizzato il modello predefinito (GitTemplate.xaml)?

The wrong Git default template

In tal caso, selezionare GitTemplate.12.xaml. Dopo aver eseguito questa operazione, verranno visualizzati il parametro Estrai override e il pulsante Sfoglia per il parametro Progetti.

The correct Git default template

D: come si determina quando il processo di compilazione associa insiemi di modifiche, commit ed elementi di lavoro?

R: ogni definizione di compilazione gestisce un record degli insiemi di modifiche (TFVC), dei commit (Git) e degli elementi di lavoro in attesa di essere associati alla successiva compilazione completata.

Ad esempio, il set di modifiche 382 viene compilato sia da Compilazione A che da Compilazione B. La Compilazione A viene accodata e completata correttamente. La Compilazione B viene accodata ma non viene completata. Il set di modifiche 382 è ora collegato alla compilazione correttamente completata di Compilazione A e alla compilazione non completata di Compilazione B. Il set di modifiche 382 non sarà collegato alla successiva compilazione completata di Compilazione A, ma lo sarà alla successiva compilazione completata di Compilazione B.

Per informazioni su come TFBuild determina la versione da associare, vedere l'articolo relativo alla qualità della build

D: Come personalizzare il processo di compilazioneper eseguire altre operazioni?

R: Personalizzare il processo