Attività di Team Foundation Build

Le attività Team Foundation Build sono componenti fondamentali del processo di compilazione del sistema Team Foundation Build. È possibile utilizzare queste attività per creare un processo di compilazione personalizzato per soddisfare le esigenze del team, ad esempio seguire una logica personalizzata o eseguire attività specializzate.

Nella maggior parte dei casi, il miglior modo per creare un modello di processo di compilazione personalizzato consiste nell'utilizzare come base un modello predefinito (DefaultTemplate.xaml). In tal modo è possibile sfruttare le funzionalità generalmente utili già create e personalizzare parti specifiche per soddisfare le proprie esigenze. Un altro vantaggio di questo approccio è la possibilità di visualizzare esempi specifici e pratici di come possono essere utilizzate le attività descritte in questo argomento. Per ulteriori informazioni su come creare un modello di processo di compilazione personalizzato, vedere Personalizzare il modello del processo di compilazione.

Importante

È consigliabile creare un processo di compilazione personalizzato solo se è necessario soddisfare esigenze specifiche.È possibile utilizzare DefaultTemplate.xaml per definire rapidamente un processo di compilazione che soddisfi molte esigenze tipiche.Per ulteriori informazioni, vedere Utilizzare il modello predefinito per il processo di compilazione.

In questo argomento

  • Autorizzazioni necessarie

  • Riferimento alle attività orientato agli obiettivi

  • Riferimento alfabetico alle attività

Autorizzazioni necessarie

Per eseguire le procedure in cui vengono utilizzate attività Team Foundation Build, è necessario disporre delle seguenti autorizzazioni impostate su Consenti:

  • Modifica definizione di compilazione

  • Estrai e Archivia per le directory di controllo delle versioni interessate, ad esempio la sottodirectory BuildProcessTemplates del progetto team.

  • Compilazioni coda

Per ulteriori informazioni, vedere Riferimento alle autorizzazioni per Team Foundation Server.

Riferimento alle attività orientato agli obiettivi

  • Eseguire attività di base

    • Ottenere i valori delle variabili di ambiente

    • Variabili di test per valori Null

    • Ottenere i percorsi di file nell'area di lavoro

    • Utilizzare le directory

    • Ottenere il percorso della directory di lavoro dell'agente di compilazione

    • Scaricare file non presenti in un'area di lavoro

    • Individuare file

    • Scrivere avvisi, errori, messaggi e altri dati nel log di compilazione

    • Scrivere metadati di compilazione nel data warehouse

  • Controllare il processo di compilazione

    • Eseguire attività nell'agente di compilazione

    • Utilizzare una struttura di mutex denominati per implementare un processo thread-safe

    • Limitare le sezioni del processo di compilazione in base al motivo (trigger)

  • Compilare, testare ed eseguire altre attività

    • Utilizzare MSBuild per compilare file binari, eseguire analisi del codice ed effettuare altre attività

    • Eseguire test

    • Ottenere un elenco di test interessati dalla compilazione

    • Avviare un processo

  • Utilizzare il controllo della versione

    • Associare insiemi di modifiche ed elementi di lavoro alla compilazione

    • Archiviare le modifiche in sospeso

    • Valutare i criteri di archiviazione

    • Assegnare etichette ai file nel controllo della versione

    • Ottenere un elenco di shelveset

    • TfGet

    • TfResolve

    • TfShelve

    • TfUndo

    • TfUnshelve

    • TfWorkfold

  • Utilizzare elementi di lavoro

    • Associare insiemi di modifiche ed elementi di lavoro alla compilazione

    • Creare un elemento di lavoro

  • Utilizzare dati dei simboli

    • Incorporare percorsi del controllo della versione e versioni nei dati dei simboli dei file con estensione pdb

    • Pubblicare simboli in un archivio simboli SymStore

  • Ottenere riferimenti a oggetti utili

    • Ottenere un riferimento a un oggetto per una raccolta di progetti team

    • Ottenere un riferimento a un oggetto per un agente di compilazione

    • Ottenere un riferimento a un oggetto per un dettaglio di compilazione

    • Ottenere un riferimento a un oggetto per un ambiente di compilazione

Riferimento alfabetico alle attività

  • AgentScope

  • ApproveRequestForCheckIn

  • AssociateChangesetsAndWorkItems

  • CheckInGatedChanges

  • ConvertWorkspaceItem

  • ConvertWorkspaceItems

  • CopyDirectory

  • CreateDirectory

  • CreateWorkspace

  • DeleteDirectory

  • DeleteWorkspace

  • DownloadFile

  • DownloadFiles

  • EvaluateCheckInPolicies

  • ExpandEnvironmentVariables

  • FindMatchingFiles

  • GenerateRunSettings

  • GetApprovedRequests

  • GetBuildAgent

  • GetBuildDetail

  • GetBuildDirectory

  • GetBuildEnvironment

  • GetCommonLocalPath

  • GetCommonServerPath

  • GetImpactedTests

  • GetPendingChanges

  • GetRejectedRequests

  • GetReshelvedShelveset

  • GetShelvedChanges

  • GetTeamProjectCollection

  • GetWorkspace

  • IndexSources

  • InvokeForReason

  • InvokeProcess

  • IsNotNull<T>

  • IsNull<T>

  • LabelSources

  • LabelWorkspace

  • MSBuild

  • MSTest

  • OpenWorkItem

  • ParseWorkspaceSpec

  • PublishSymbols

  • QueryShelvesets

  • RejectRequestFromCheckIn

  • RetryRequest

  • RetryRequests

  • RevertWorkspace

  • RunOnce

  • RunTests

  • SetBuildProperties

  • SharedResourceScope

  • SyncWorkspace

  • SynchronizeRequests

  • TfGet

  • TfQueryConflicts

  • TfResolve

  • TfShelve

  • TfUndo

  • TfUnshelve

  • TfWorkfold

  • TfsBuild

  • UpdateBuildNumber

  • WriteBuildError

  • WriteBuildInformation<T>

  • WriteBuildMessage

  • WriteBuildTestError

  • WriteBuildWarning

  • WriteCustomSummaryInformation

Eseguire attività di base

È possibile utilizzare le attività Team Foundation Build per effettuate le seguenti attività:

  • Ottenere i valori delle variabili di ambiente

  • Ottenere i percorsi di file nell'area di lavoro

  • Utilizzare le directory

  • Ottenere il percorso della directory di lavoro dell'agente di compilazione

  • Scaricare file non presenti in un'area di lavoro

  • Individuare file

  • Scrivere avvisi, errori, messaggi e altri dati nel log di compilazione

  • Scrivere metadati relativi alla compilazione

Ottenere i valori delle variabili di ambiente (attività ExpandEnvironmentVariables)

Utilizzare l'attività ExpandEnvironmentVariables per risolvere una o più variabili di ambiente su un server di compilazione. Le variabili di ambiente vengono lette nell'agente di compilazione se questa attività è all'interno di una sequenza AgentScope. In caso contrario, vengono lette nel controller di compilazione.

Suggerimento

È possibile ottenere bit di dati utili dalle variabili di ambiente TF_BUILDÈ possibile ad esempio ottenere la directory dei file binari, che rappresenta la directory da cui il processo di compilazione copia i file di output nella posizione per la definizione di compilazione.Vedere Variabili di ambiente di Team Foundation Build.

Proprietà Result di ExpandEnvironmentVariables (String)

Restituisce il risultato dell'operazione. Ad esempio, The temp directory on machine BLDSERV3 is C:\windows\SERVIC~2\NETWOR~1\AppData\Local\Temp.

Proprietà Argument di ExpandEnvironmentVariables

  • Input (String): è necessario specificare la stringa che contiene le variabili di ambiente da risolvere. Ogni variabile di ambiente deve essere formattata specificando una proprietà MSBuild, anziché utilizzando la notazione con simbolo di percentuale di Windows. Ad esempio, "The temporary directory on machine $(COMPUTERNAME) is $(TEMP)."

  • AdditionalVariables (IDictionary<String,String>): è possibile specificare un oggetto IDictionary contenente le eventuali variabili aggiuntive (come chiavi) che si desidera risolvere nei valori corrispondenti.

Torna all'inizio

Variabili di test per valori Null

IsNotNull<T>

Utilizzare l'attività IsNotNull<T> per verificare se un'espressione di Visual Basic, come una variabile in uso, specificata nella proprietà Value (Object) non è Null. Il risultato del test viene salvato nella proprietà Result di tipo Boolean.

IsNull<T>

Utilizzare l'attività IsNull<T> per verificare se un'espressione di Visual Basic, come una variabile in uso, specificata nella proprietà Value (Object) è Null. Il risultato del test viene salvato nella proprietà Result di tipo Boolean.

Ottenere i percorsi dei file nell'area di lavoro

In ogni configurazione è presente un'area di lavoro del controllo della versione definita nella scheda Area di lavoro della definizione di compilazione. Tramite l'area di lavoro la compilazione accede ai file di codice sorgente e agli eventuali altri file richiesti dal sistema di controllo della versione. In Team Foundation Build sono disponibili due attività che è possibile utilizzare con i file nell'area di lavoro di compilazione: ConvertWorkspaceItem e ConvertWorkspaceItems.

Per ulteriori informazioni sulle aree di lavoro di compilazione, vedere Creare o modificare una definizione di compilazione.

Suggerimento

Per istruzioni dettagliate sull'utilizzo dell'attività ConvertWorkspaceItem in uno scenario tipico, vedere Controllare la posizione in cui il sistema di compilazione inserisce i binari.

Ottenere il percorso di un file in un'area di lavoro (attività ConvertWorkspaceItem)

Utilizzare l'attività ConvertWorkspaceItem per convertire un percorso server in percorso locale dell'agente di compilazione o per convertire un percorso locale dell'agente di compilazione in percorso server.

Proprietà Result di ConvertWorkspaceItem (String)

Restituisce il percorso convertito.

Proprietà Argument di ConvertWorkspaceItem

  • Input (String): è necessario specificare il valore del percorso che si desidera convertire.

  • Workspace (Workspace): è necessario specificare un riferimento a Workspace in cui è contenuto il file. Nella maggior parte dei casi è consigliabile impostare questa proprietà sulla variabile inizializzata nella proprietà Result dell'attività CreateWorkspace. Se si crea un processo di compilazione basato su DefaultTemplate.xaml, è consigliabile utilizzare la variabile Workspace.

  • Direzione

    • Convertire un percorso server in un percorso locale: nella proprietà Direction selezionare ServerToLocal, quindi specificare il percorso del file sul server nella proprietà Input (String)

      È possibile, ad esempio, che il team archivi le utilità comuni nella seguente directory: $/OurTeam/BuildProcess/Util. È possibile creare un processo di compilazione personalizzato per eseguire l'utilità ScanBinaries.exe dopo la compilazione dei file binari. Se $/OurTeam/BuildProcess/Util è mappata alla scheda Area di lavoro della definizione di compilazione, è possibile specificare $/OurTeam/BuildProcess/Util/ScanBinaries.exe nella proprietà Input per ottenere il percorso locale dell'utilità dalla proprietà Result (String)

    • Convertire un percorso locale in un percorso server: nella proprietà Direction selezionare ServerToLocal, quindi specificare il percorso locale del file nell'agente di compilazione nella proprietà Input.

Ottenere i percorsi dei file in un'area di lavoro (attività ConvertWorkspaceItems)

Utilizzare l'attività ConvertWorkspaceItems per convertire percorsi server in percorsi locali dell'agente di compilazione o per convertire percorsi locali dell'agente di compilazione in percorsi server.

Proprietà Result di ConvertWorkspaceItems (IList<String>)

Restituisce i valori dei percorsi convertiti.

Proprietà Argument di ConvertWorkspaceItems

  • Input (IEnumerable<String>): è necessario specificare i valori dei percorsi che si desidera convertire.

  • Workspace (Workspace): è necessario specificare un riferimento a Workspace in cui sono contenuti i file. Nella maggior parte dei casi è consigliabile impostare questa proprietà sulla variabile inizializzata nella proprietà Result dell'attività CreateWorkspace.

    Suggerimento

    Se si crea un processo di compilazione basato su DefaultTemplate.xaml, è consigliabile utilizzare la variabile Workspace.

  • Direction: selezionare uno dei valori riportati di seguito.

    • Selezionare ServerToLocal se si specifica una raccolta di valori di percorsi server nella proprietà Input e si desidera che la proprietà Result restituisca un elenco di valori di percorsi locali.

    • Selezionare LocalToServer se si specifica una raccolta di valori di percorsi locali nella proprietà Input e si desidera che la proprietà Result restituisca un elenco di valori di percorsi server.

Utilizzare le directory

È possibile utilizzare le directory tramite diverse attività in Team Foundation Build.

Suggerimento

Se è necessario utilizzare directory appartenenti all'area di lavoro del controllo della versione della compilazione, si consiglia di utilizzare le attività dell'area di lavoro.Per ulteriori informazioni, vedere Ottenere i percorsi di file nell'area di lavoro.

Creare una directory (attività CreateDirectory)

Utilizzare l'attività CreateDirectory per creare una directory, specificandone il nome nella proprietà Directory (String).

Copiare una directory (attività CopyDirectory)

Utilizzare l'attività CopyDirectory per copiare in modo ricorsivo tutto il contenuto da una directory, specificata nella proprietà Source (String), in un'altra directory, specificata nella proprietà Destination (String). La directory specificata nella proprietà Destination deve essere già disponibile. Le directory o le sottodirectory vuote non vengono copiate.

Eliminare una directory (attività DeleteDirectory)

Utilizzare l'attività DeleteDirectory per eliminare una directory, specificandone il nome nella proprietà Directory (String). Se nella directory da eliminare sono presenti sottodirectory, è necessario impostare la proprietà Recursive (Boolean) su True. In caso contrario, la compilazione non funzionerà.

Ottenere il percorso della directory di lavoro dell'agente di compilazione (attività GetBuildDirectory)

Utilizzare l'attività GetBuildDirectory per ottenere il percorso letterale della directory di lavoro dell'agente di compilazione dalla proprietà Result (String). È possibile utilizzare questa attività solo all'interno di un'attività AgentScope.

Torna all'inizio

Modificare il percorso dati

Attività GetCommonLocalPath

Utilizzare l'attività GetCommonLocalPath per ottenere il percorso della cartella padre comune di livello inferiore di una o più cartelle locali. Ad esempio, se si specifica LocalItems (IEnumerable<String>) come segue:

{“c:\Code\Fabrikam-3\TestScrum\Main\FabrikamFiber.CallCenter”, “c:\Code\Fabrikam-3\TestScrum\Main\lib”}

Per Risultato (String) verrà quindi restituito:

c:\Code\Fabrikam-3\TestScrum\Main

Attività GetCommonServerPath

Utilizzare l'attività GetCommonServerPath per ottenere il percorso della cartella padre comune di livello inferiore di una o più cartelle locali. Ad esempio, se si specifica ServerItems (IEnumerable<String>) come segue:

{“$/TestScrum/Main/FabrikamFiber.CallCenter”, “$/TestScrum/Main/lib”}

Per Risultato (String) verrà quindi restituito:

$/TestScrum/Main

Scaricare file non presenti in un'area di lavoro

Utilizzare l'attività DownloadFiles per scaricare uno o più file. Ignorare l'attività DownloadFile.

Attività DownloadFiles

Utilizzare l'attività DownloadFiles per scaricare uno o più file dal controllo della versione.

Suggerimento

Se i file che si desidera scaricare si trovano nell'area di lavoro di compilazione, è consigliabile accedervi tramite l'attività ConvertWorkspaceItem.

Proprietà Argument di DownloadFiles

  • LocalPath (String) È necessario specificare un valore:

    • Se si scarica un singolo file, specificare il percorso locale e il nome che si desidera assegnare alla copia locale di tale file, ad esempio "c:\Docs\readme.txt".

    • Se si scaricano più file, specificare il percorso locale della directory in cui si desidera scaricare tali file, ad esempio "c:\Docs\".

  • ServerPath (String) È necessario specificare un valore:

    • Se si scarica un singolo file, specificare il percorso server e il nome che si desidera assegnare alla copia locale di tale file, ad esempio "$/Docs/readme.txt".

    • Se si scaricano più file, specificare il percorso server della directory contenente tali file, ad esempio "$/Docs/".

  • Recursion (RecursionType):

    • OneLevel: consente di scaricare il file o i file nella directory specificata tramite la proprietà ServerPath.

    • Full: consente di scaricare i file nella directory specificata tramite la proprietà ServerPath e gli eventuali file presenti nelle sottodirectory.

  • Version (String): è possibile specificare un versionspec. Per scaricare la versione corrente, lasciare la proprietà impostata su Microsoft.TeamFoundation.VersionControl.Client.VersionSpec.Latest.DisplayString. Per ulteriori informazioni sugli elementi versionspec, vedere Sintassi della riga di comando.

  • DeletionID (Int32): è necessario specificare questa proprietà solo se si scarica un file eliminato dal controllo della versione. È possibile ottenere questo valore in modo interattivo digitando tf dir /deleted al prompt dei comandi. Per ulteriori informazioni, vedere Dir Command. In Team Foundation Build non è tuttavia disponibile un'attività incorporata per ottenere una proprietà DeletionID. Per utilizzare questa proprietà, è necessario ottenere o creare un'attività personalizzata in grado di fornire questa funzionalità.

Torna all'inizio

Attività DownloadFile

Ignorare l'attività DownloadFile. L'attività DownloadFiles consente di scaricare uno o più file nel modo più semplice.

Individuare file (attività FindMatchingFiles)

Per individuare file, utilizzare l'attività FindMatchingFiles. Specificare i criteri di ricerca nella proprietà MatchPattern (String). In questa proprietà è possibile specificare un argomento nel quale sono compresi i seguenti elementi:

  • Sintassi supportata dall'argomento searchPattern del metodo Directory GetFiles(String, String).

  • ** per specificare una ricerca ricorsiva. Di seguito è riportato un esempio.

    • Per cercare la directory di origine di file di testo, è possibile specificare un valore simile al seguente per la proprietà MatchPattern: String.Format("{0}\**\*.txt", SourcesDirectory).

    • Per cercare la directory di origine di file di testo in una o più sottodirectory denominate txtfiles, è possibile specificare un valore simile al seguente per la proprietà MatchPattern: String.Format("{0}\**\txtfiles\*.txt", SourcesDirectory).

Il risultato dell'operazione viene raccolto nella proprietà Result (IEnumerable<String>).

Scrivere avvisi, errori, messaggi e altri dati nel log di compilazione

WriteCustomSummaryInformation

Utilizzare l'attività WriteCustomSummaryInformation per scrivere un messaggio nel riepilogo di compilazione, che viene mostrato agli utenti nella finestra dei risultati di compilazione.

Proprietà dell'argomento WriteCustomSummaryInformation

  • Messaggio (String): è necessario specificare il messaggio da visualizzare nel riepilogo di compilazione.

    È possibile includere collegamenti ipertestuali nel messaggio utilizzando una delle seguenti sintassi:

    [link text](url)
    [link text] (url)
    

    Ad esempio:

    For the latest operation status, see [Fabrikam Fiber Ops] (http://intranet.fabrikam.com/ops/status).
    
  • SectionDisplayName (String): è necessario specificare il nome della sezione in cui si desidera che il messaggio venga visualizzato. Se più istanze di WriteCustomSummaryInformation con lo stesso valore SectionKey specificano valori diversi SectionDisplayName, verrà utilizzato automaticamente SectionDisplayName della prima istanza nel modello di processo di compilazione.

  • SectionKey (String): è necessario specificare un identificatore per il nome della sezione in cui si desidera che il messaggio venga visualizzato. Il valore specificato deve rispettare le regole riportate in NameProperty.

    Ad esempio, se si implementano due istanze WriteCustomSummaryInformation con un valore SectionKey corrispondente a “MySection”, quando la compilazione viene elaborata, entrambi i messaggi verranno visualizzati nella stessa sezione nel riepilogo di compilazione.

  • SectionPriority (Int32): è possibile specificare la priorità della sezione, che a sua volta determina la posizione relativa della sezione del riepilogo di compilazione. Più basso è il valore e più alta sarà la sezione nel riepilogo visualizzata. Se più istanze WriteCustomSummaryInformation con lo stesso valore SectionKey specificano valori SectionPriority diversi, viene utilizzato il valore SectionPriority della prima istanza nel modello del processo di compilazione.

Torna all'inizio

Attività WriteBuildMessage

Utilizzare l'attività WriteBuildMessage per scrivere un messaggio informativo nel log di compilazione. È necessario specificare il messaggio nella proprietà Message (String). È inoltre possibile indicare l'importanza del messaggio modificando il valore della proprietà Importance (BuildMessageImportance).

Suggerimento

  • Gli utenti del processo di compilazione possono utilizzare il filtro del livello di dettaglio per ridurre l'overload di informazioni in base a ciò che hanno l'esigenza di visualizzare e i dati archiviati nel warehouse.È possibile aumentare l'efficacia del filtro adottando un approccio ponderato e coerente all'impostazione della proprietà Importance dei messaggi di compilazione.Per ulteriori informazioni, vedere Gestire le informazioni di compilazione e controllare il dettaglio.

  • Se si utilizzano le impostazioni predefinite, il messaggio non verrà scritto nel log di compilazione.Per risolvere questo problema, eseguire uno dei passaggi riportati di seguito:

    • Impostare la proprietà WriteBuildMessage Importance su Microsoft.TeamFoundation.Build.Client.BuildMessageImportance.High.

    • Nella scheda Processo della definizione di compilazione impostare il parametro del processo Registrazione del livello di compilazione su Detailed o Diagnostic.

Attività WriteBuildWarning

Utilizzare l'attività WriteBuildWarning per scrivere un messaggio di avviso nel log di compilazione. Gli avvisi vengono visualizzati con un punto esclamativo giallo nella finestra Risultati compilazione. È necessario specificare il messaggio nella proprietà Message (String).

Gli avvisi di compilazione vengono registrati solo quando il team imposta un livello di dettaglio minimo o superiore. Per ulteriori informazioni, vedere Gestire le informazioni di compilazione e controllare il dettaglio.

Attività WriteBuildError

Utilizzare l'attività WriteBuildError per scrivere un messaggio di errore di compilazione nel log di compilazione. Gli errori vengono visualizzati con un punto esclamativo rosso nella finestra Risultati compilazione. Quando nel log di compilazione viene registrato un errore, nella migliore delle ipotesi tale compilazione viene classificata come Partially Succeeded. È necessario specificare il messaggio nella proprietà Message (String).

Gli errori di compilazione vengono sempre registrati, indipendentemente dall'impostazione del livello di dettaglio. Per ulteriori informazioni, vedere Gestire le informazioni di compilazione e controllare il dettaglio.

Attività WriteBuildTestError

Utilizzare l'attività WriteBuildTestError per scrivere un messaggio di errore di test nel log di compilazione. Gli errori vengono visualizzati con un punto esclamativo rosso nella finestra Risultati compilazione. Quando nel log di compilazione viene registrato un errore, nella migliore delle ipotesi tale compilazione viene classificata come Partially Succeeded. È necessario specificare il messaggio nella proprietà Message (String).

Gli errori di compilazione vengono sempre registrati, indipendentemente dall'impostazione del livello di dettaglio. Per ulteriori informazioni, vedere Gestire le informazioni di compilazione e controllare il dettaglio.

Attività WriteBuildInformation<T>

Utilizzare l'attività WriteBuildInformation<T> per inserire un oggetto nel log di compilazione. Quando un utente visualizza il log nella finestra Risultati compilazione, il rendering dell'oggetto viene eseguito tramite reflection.

Proprietà Argument di WriteBuildInformation<T>

  • Value (Object): è necessario specificare l'oggetto che si desidera inserire nel log di compilazione. Per consentire il rendering dell'oggetto nella finestra Risultati compilazione, è necessario che tale oggetto implementi IBuildInformationNode e che Type sia impostato su uno dei seguenti valori InformationTypes:

    • ActivityProperties

    • ActivityTracking

    • AgentScopeActivityTracking

    • BuildError

    • BuildMessage

    • BuildProject

    • BuildStep

    • BuildWarning

    • ExternalLink

    • OpenedWorkItem

  • ParentToBuildDetail: è possibile specificare False per fare in modo che l'elemento padre di questo oggetto lo sia anche di questa attività. In alternativa è possibile specificare True per fare in modo che l'elemento padre sia l'oggetto IBuildDetail.

    Uno degli effetti di questa proprietà è la modalità di visualizzazione delle informazioni nella finestra Risultati compilazione. Se si specifica False, le informazioni vengono rientrate e allineate con l'output di altre attività precedenti e successive all'attività WriteBuildInformation<T> e allo stesso livello. Se si specifica True, le informazioni non vengono rientrate.

Torna all'inizio

Scrivere metadati nel data warehouse

È possibile scrivere i metadati relativi alla compilazione nel data warehouse:

  • Scrivere il numero build (attività UpdateBuildNumber)

  • Scrivere i punti dati chiave relativi alla compilazione (attività SetBuildProperties)

Suggerimento

Se queste attività non supportano i metadati che si desidera scrivere, è possibile utilizzare l'attività GetBuildDetail per ottenere un riferimento all'oggetto IBuildDetail, quindi assegnare i dati direttamente all'oggetto utilizzando tale riferimento.

Scrivere il numero di build (attività UpdateBuildNumber)

Utilizzare l'attività UpdateBuildNumber per impostare il numero build (o nome) della compilazione. Questa attività esegue i passaggi riportati di seguito.

  1. Crea un numero build in base a un'espressione che ne determina il formato. Il processo di compilazione accetta in genere questa espressione da un argomento del flusso di lavoro fornito da un parametro nella scheda Processo di una definizione di compilazione.

  2. Imposta il numero build, o il nome, della compilazione mediante la scrittura del valore risultante nella proprietà BuildNumber.

Proprietà Result di UpdateBuildNumber (String)

Result: restituisce il nuovo valore di BuildNumber.

Proprietà di UpdateBuildNumber

Torna all'inizio

Scrivere i punti dati chiave relativi alla compilazione (attività SetBuildProperties)

Utilizzare SetBuildProperties per scrivere i punti dati chiave nell'oggetto IBuildDetail che gestisce l'archiviazione dei dati di ogni compilazione nel data warehouse. La maggior parte di tali dati viene visualizzata all'utente nella finestra Risultati compilazione.

Proprietà di SetBuildProperties

  • PropertiesToSet: è necessario selezionare le caselle di controllo relative ai nomi delle proprietà che si desidera impostare.

  • BuildNumber (String): è possibile impostare BuildNumber per la compilazione, che può essere considerato come il nome della compilazione.

    Suggerimento

    Se si desidera impostare questo valore in base alle impostazioni specificate dall'utente nella scheda Processo della definizione di compilazione, è consigliabile utilizzare l'attività UpdateBuildNumber anziché questa proprietà.

  • CompilationStatus (BuildPhaseStatus): è possibile impostare lo stato della compilazione (CompilationStatus). Questo valore viene inoltre impostato automaticamente dall'attività MSBuild.

  • DropLocation (String): è possibile registrare la destinazione finale nella proprietà DropLocation.

    Nota

    L'impostazione di questa proprietà non comporta in effetti la creazione della destinazione finale.Utilizzare invece questa proprietà per archiviare, all'interno del data warehouse, la posizione della cartella di ricezione, che viene in genere creata tramite l'attività CreateDirectory.

  • KeepForever (Boolean): è possibile impostare la proprietà KeepForever su True se si desidera ignorare le impostazioni nella scheda Criteri di conservazione della definizione di compilazione e mantenere la compilazione completata per un intervallo illimitato.

  • LabelName (String): è possibile impostare la proprietà LabelName per registrare l'etichetta utilizzata per contrassegnare la compilazione nei file del codice sorgente nel controllo della versione. Questa proprietà viene in genere impostata in base al valore della proprietà Name dell'attività LabelWorkspace.

    Importante

    In Team Foundation Build questi dati sono necessari per associare l'insieme di modifiche e gli elementi di lavoro con le compilazioni.Se non si specificano questi dati, l'attività AssociateChangesetsAndWorkItems non funzionerà.

  • LogLocation (String): è possibile utilizzare la proprietà LogLocation per registrare il percorso di file UNC della cartella in cui il processo di compilazione inserisce il file di log.

    Nota

    Probabilmente non sarà necessario utilizzare questa proprietà nel processo di compilazione personalizzato.Questa proprietà viene principalmente utilizzata dal file UpgradeTemplate.xaml per supportare i processi di compilazione legacy.

  • Quality (String): è possibile registrare la qualità della compilazione nella proprietà Quality.

  • SourceGetVersion (String): è possibile utilizzare la proprietà SourceGetVersion per registrare la specifica della versione per cui vengono recuperate le origini per questa compilazione.

  • Status (BuildStatus): è possibile registrare lo stato complessivo della compilazione nella proprietà Status. Questa proprietà può essere utilizzata, ad esempio, per indicare se la compilazione ha avuto esito positivo o negativo.

  • TestStatus (BuildPhaseStatus): utilizzare la proprietà TestStatus per registrare lo stato complessivo dei test eseguiti su questa compilazione. Questa proprietà può essere utilizzata, ad esempio, per indicare se i test eseguiti su questa compilazione hanno avuto esito positivo o negativo.

Torna all'inizio

Controllare il processo di compilazione

È possibile utilizzare le attività Team Foundation Build per controllare il processo di compilazione nei modi seguenti:

  • Eseguire attività nell'agente di compilazione

  • Utilizzare una struttura di mutex denominati per implementare un processo thread-safe

  • Limitare le sezioni del processo di compilazione in base al motivo (trigger)

Eseguire attività nell'agente di compilazione (attività AgentScope)

Utilizzare l'attività AgentScope per racchiudere le parti del processo di compilazione che si desidera eseguire nell'agente di compilazione.

Proprietà Argument di AgentScope

  • Selezione agente

    • MaxWaitTime (TimeSpan): è possibile specificare il tempo massimo di attesa del processo di compilazione prima che un agente di compilazione diventi disponibile. È possibile digitare un valore 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.

      Importante

      È possibile evitare di eseguire il backup della coda di compilazione specificando un valore appropriato diverso da zero nella proprietà MaxWaitTime.

    • ReservationSpec (AgentReservationSpec): è possibile limitare il tipo di agente di compilazione che verrà utilizzato per elaborare le attività contenute in questa attività. È possibile specificare, ad esempio, che per elaborare le attività all'interno dell'attività AgentScope vengano utilizzati solo agenti di compilazione con un tag specifico.

  • Esecuzione

    • MaxExecutionTime (TimeSpan): è possibile specificare l'intervallo di tempo massimo consentito per il completamento di questa attività AgentScope. È possibile digitare un valore 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.

      Suggerimento

      È possibile evitare di eseguire il backup della coda di compilazione specificando un valore appropriato diverso da zero nella proprietà MaxExecutionTime.

  • Ambito

    • DataToIgnore: ignorare questa proprietà.

Torna all'inizio

Utilizzare una struttura di mutex denominati per implementare un processo thread-safe (attività SharedResourceScope)

Utilizzare l'attività SharedResourceScope per implementare una struttura denominata di mutex (mutua esclusione) per assicurarsi che il segmento incluso del processo di compilazione sarà "thread-safe".

Questa attività viene generalmente utilizzata per racchiudere parti del processo di compilazione che devono accedere a una risorsa condivisa che accetta un solo processo alla volta. Ad esempio, può essere necessario fare in modo che la scrittura dalle compilazioni avvenga in ordine sequenziale in un singolo file di testo su una condivisione file. Per accertarsi che questo tipo di processo funzioni correttamente, è consigliabile implementarlo all'interno di un'attività SharedResourceScope.

Un altro esempio è disponibile in DefaultTemplate.xaml, dove la chiamata dell'attività PublishSymbols è incorporata in un'attività SharedResourceScope:

  1. Sequenza (Sequence) >

  2. Esegui su agente (AgentScope) >

  3. Prova a compilare, eseguire il test e associare insiemi di modifiche ed elementi di lavoro (TryCatch [Try]) >

  4. Sequenza (Sequence) >

  5. Ottieni test interessati, indicizza origini e pubblica simboli (Parallel) >

  6. Se SourceAndSymbolServerSettings.IndexSources o SourceAndSymbolServerSettings.HasSymbolStorePath (If [Then]) >

  7. Indicizza origini e pubblica simboli per le compilazioni attivate (InvokeForReason) >

  8. Se SourceAndSymbolServerSettings.HasSymbolStorePath (If [Then]) >

  9. Prova a pubblicare i simboli (TryCatch [Try]) >

  10. Sincronizza accesso all'archivio simboli (SharedResourceScope) >

  11. Pubblica simboli (PublishSymbols)

Proprietà Argument di SharedResourceScope

  • ResourceName (String): è necessario specificare un valore. Tutte le istanze delle attività SharedResourceScope vengono eseguite una alla volta se hanno lo stesso valore ResourceName nella raccolta di progetti team, anche se sono incluse in modelli della definizione di compilazione diversi.

  • MaxExecutionTime (TimeSpan): è possibile specificare l'intervallo di tempo massimo consentito per il completamento dell'attività SharedResourceScope. È possibile digitare un valore 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'attività SharedResourceScope non viene completata dopo 4 ore, 30 minuti e 15 secondi. Specificare il valore 00:00:00 se si desidera consentire un tempo illimitato per elaborare l'attività SharedResourceScope.

    Suggerimento

    È possibile evitare di eseguire il backup della coda di compilazione specificando un valore appropriato diverso da zero nella proprietà MaxExecutionTime.

  • MaxWaitTime (TimeSpan): è possibile specificare il tempo massimo di attesa del processo di compilazione nella coda prima che venga elaborata l'attività SharedResourceScope. È possibile digitare un valore 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 l'attività SharedResourceScope non viene elaborata dopo 1 ora, 30 minuti e 45 secondi. Specificare il valore 00:00:00 se si desidera consentire al processo di compilazione un tempo di attesa illimitato nella coda.

    Suggerimento

    È possibile evitare di eseguire il backup della coda di compilazione specificando un valore appropriato diverso da zero nella proprietà MaxWaitTime.

Torna all'inizio

Limitare le sezioni del processo di compilazione in base al motivo (trigger) (attività InvokeForReason)

Utilizzare l'attività InvokeForReason per racchiudere un segmento del processo di compilazione che si desidera eseguire solo nelle compilazioni eseguite per un motivo particolare. I motivi di compilazione vengono in genere impostati dal trigger selezionato dall'utente nella scheda Trigger della definizione di compilazione. Nella proprietà Reason è possibile specificare uno o più valori dei motivi che si desidera consentire. Per ulteriori informazioni, vedere Specificare trigger e motivi di compilazione.

Torna all'inizio

Compilare, testare ed eseguire altre attività

È possibile utilizzare le attività Team Foundation Build per compilare file binari, eseguire test ed effettuare altre attività:

  • Utilizzare MSBuild per compilare file binari, eseguire analisi del codice ed effettuare altre attività

  • Eseguire test

  • Ottenere un elenco di test interessati dalla compilazione

Utilizzare MSBuild per compilare file binari, eseguire analisi del codice ed effettuare altre attività (attività MSBuild)

Utilizzare l'attività MSBuild per compilare file binari, eseguire analisi del codice e sfruttare altre funzionalità disponibili in MSBuild.

Risultato di MSBuild

Nessuna proprietà di questa attività restituisce un risultato. Questa attività, tuttavia, imposta CompilationStatus su Failed se vengono registrati errori di compilazione.

Proprietà Argument di MSBuild

  • AdditionalVCOverrides (String): se si imposta GenerateVsPropsFile su True, il contenuto di questa attività verrà incorporato nel file .vsprops generato.

  • CommandLineArguments (String): è possibile specificare argomenti della riga di comando che si desidera passare a MSBuild.

  • Configuration (String): è possibile specificare la configurazione da compilare. Ad esempio, “debug” o “release”.

  • GenerateVSPropsFile (Boolean): se questa proprietà è impostata su True, in MSBuild viene generato un file .vsprops standard da passare ai progetti C++. In questo file sarà inclusa la directory di output per i progetti C++ e qualsiasi altro elemento specificato dall'utente nella proprietà AdditionalVCOverrides.

  • LogFile (String): è possibile specificare il nome del file di log che verrà creato in MSBuild.

  • LogFileDropLocation (String): è possibile specificare il percorso UNC completo della directory in cui dovrà essere inserito il file di log tramite MSBuild.

  • MaxProcesses (Int32): è possibile specificare il numero massimo di processi creati tramite MSBuild.

  • OutDir (String): è possibile specificare la directory in cui verranno inseriti i file binari compilati tramite MSBuild. Per ulteriori informazioni, vedere Controllare la posizione in cui il sistema di compilazione inserisce i binari.

  • Platform (String): è possibile specificare la piattaforma utilizzata da MSBuild per la compilazione. Ad esempio, “Any CPU”, “x86” o “x64”.

  • Project (String): è possibile specificare la soluzione o il progetto di codice compilato da MSBuild.

  • ResponseFile (String): è possibile specificare il file di risposta utilizzato da MSBuild.

  • RunCodeAnalysis (CodeAnalysisOption): è possibile specificare se l'analisi del codice dovrà essere eseguita sempre, mai o in base alle impostazioni del progetto.

  • Targets (IEnumerable<String>): è possibile specificare le destinazioni da compilare.

  • TargetsNotLogged (IEnumerable<String>): è possibile specificare le destinazioni per cui gli eventi ProjectStarted non dovranno essere registrati.

  • ToolPath (String): è possibile specificare il percorso dello strumento.

  • ToolPlatform (ToolPlatform): è possibile specificare la piattaforma per lo strumento. Specificare Microsoft.TeamFoundation.Build.Workflow.Activities.ToolPlatform.Auto per rilevare la piattaforma in base al sistema operativo corrente.

  • Verbosity (BuildVerbosity): è possibile specificare il livello di dettaglio del log generato da MSBuild.

Per ulteriori informazioni sulle molte opzioni di MSBuild interessate dalle proprietà MSBuild, vedere Riferimenti alla riga di comando di MSBuild.

Torna all'inizio

Eseguire i test

È possibile eseguire test utilizzando l'attività RunTests o l'attività MSTest.

Eseguire test utilizzando l'attività RunTests

Utilizzare l'attività RunTests per utilizzare Agile Test Runner per eseguire i test. Se la compilazione compila ed esegue test binari con piattaforme incompatibili, è necessario eseguire questa attività esclusivamente dagli assembly in ciascuna piattaforma.

Per ulteriori informazioni, vedere Eseguire test nel processo di compilazione.

Proprietà principali di RunTests

  • TestSources (IEnumerable<String>): è necessario specificare un elenco di file di assembly che contengono i test da eseguire.

  • ExecutionPlatform (ExecutionPlatformType): è possibile specificare la piattaforma dei file binari che si desidera testare. Per ulteriori informazioni, vedere Agile Test Runner.

  • ExecutionTimeout (Int32): è possibile specificare il tempo massimo che il processo di compilazione attende per il completamento dell'esecuzione del test. Specificare il valore 0 se si desidera assegnare all'attività RunTests il tempo illimitato per eseguire i test.

  • KeepAlive (Boolean): è possibile impostare la proprietà su True se si desidera che il processo di Agile Test Runner continui l'esecuzione dell'agente di compilazione dopo il completamento dell'attività RunTests.

  • RunSettings (String): non documentato.

  • TestCaseFilter (String): è possibile utilizzare questa proprietà per eseguire un subset dei test case. Per ulteriori informazioni, vedere Specificare criteri per l'esecuzione dei test tramite Visual Studio Test Runner.

  • UpdateFrequency (Int32): non documentato.

  • UpdateFrequencyTimeout (Int32): non documentato.

Proprietà di pubblicazione di RunTests

È possibile utilizzare le proprietà seguenti per pubblicare i risultati del test nella raccolta di progetti team:

  • PublishResults (Boolean): è necessario impostare questa proprietà su True se si desidera pubblicare i risultati dei test.

  • Flavor (String): è possibile specificare la versione della compilazione su cui vengono eseguiti i test dei quali si desidera pubblicare i risultati.

  • Platform (String): è possibile specificare la piattaforma della compilazione su cui vengono eseguiti i test dei quali si desidera pubblicare i risultati.

  • RunName (String): è possibile specificare il nome dell'esecuzione dei test. Ai clienti del processo di compilazione verrà visualizzato questo nome nel riepilogo della finestra dei risultati di compilazione. Se non si specifica un nome, ne viene generato uno automaticamente.

Delegati

  • OnTestCompleted: non documentato.

  • OnTestRunCompleted: non documentato.

Torna all'inizio

Eseguire test utilizzando l'attività MSTest

Utilizzare questa attività per eseguire test tramite MSTest.exe.

Proprietà principali di MSTest

Per iniziare, scegliere come si desidera eseguire i test, quindi specificare i valori per le proprietà appropriate.

Proprietà di filtro di MSTest

Per filtrare i test eseguiti, è possibile utilizzare le proprietà seguenti:

  • Category (String): è possibile filtrare i test in base alle relative categorie di test. Questa proprietà equivale all'opzione /category del comando MSTest.exe. Per ulteriori informazioni, vedere Opzioni della riga di comando di MSTest.exe (/category) e Definizione di categorie per raggruppare i test.

  • MaxPriority (Int32): è possibile specificare la priorità massima dei test che si desidera eseguire. Verranno eseguiti solo i test la cui priorità è minore o uguale a questo valore. È necessario specificare un numero intero positivo uguale o maggiore del valore della proprietà MinPriority. In alternativa è necessario specificare -1 se non si desidera specificare una priorità massima.

    Suggerimento

    Se sono state assegnate priorità ai test, le proprietà MinPriority e MaxPriority possono costituire un importante meccanismo per definire un bilanciamento tra l'esecuzione di un test approfondito e una maggiore velocità delle compilazioni.

  • MinPriority (Int32): è possibile specificare la priorità minima dei test che si desidera eseguire. Verranno eseguiti solo i test la cui priorità è maggiore o uguale a questo valore. È necessario specificare un numero intero positivo uguale o minore del valore della proprietà MaxPriority. In alternativa è necessario specificare -1 se non si desidera specificare una priorità minima.

  • TestNames (IEnumerable<String>): è possibile specificare i nomi dei test che si desidera eseguire. Questa proprietà equivale all'opzione /test del comando MSTest.exe. Per ulteriori informazioni, vedere Opzioni della riga di comando di MSTest.exe (/test).

Proprietà Publish di MSTest

È possibile utilizzare le proprietà seguenti per pubblicare i risultati del test nella raccolta di progetti team:

  • Publish (Boolean): è necessario impostare questa proprietà su True se si desidera pubblicare i risultati di test.

  • Flavor (String): è possibile specificare la versione della compilazione su cui vengono eseguiti i test dei quali si desidera pubblicare i risultati. Questa proprietà equivale all'opzione /flavor del comando MSTest.exe. Per ulteriori informazioni, vedere Opzioni della riga di comando per la pubblicazione dei risultati dei test.

  • Platform (String): è possibile specificare la piattaforma della compilazione su cui vengono eseguiti i test dei quali si desidera pubblicare i risultati. Questa proprietà equivale all'opzione /platform del comando MSTest.exe. Per ulteriori informazioni, vedere Opzioni della riga di comando per la pubblicazione dei risultati dei test.

  • TestConfigId (Int32): è possibile specificare l'ID di una configurazione di gestione test esistente da associare all'esecuzione di test di cui si desidera pubblicare i risultati. Questa proprietà equivale all'opzione /testconfigid del comando MSTest.exe. Per ulteriori informazioni, eseguire MSTest /? al prompt dei comandi di Visual Studio.

  • TestConfigName (String): è possibile specificare il nome di una configurazione di gestione test esistente da associare all'esecuzione di test di cui si desidera pubblicare i risultati. Questa proprietà equivale all'opzione /testconfigname del comando MSTest.exe. Per ulteriori informazioni, eseguire MSTest /? al prompt dei comandi di Visual Studio.

Altre proprietà di MSTest

  • CommandLineArguments (String): per ulteriori informazioni sulle opzioni aggiuntive della riga di comando che è possibile specificare, vedere MSTest.exe (opzioni della riga di comando).

  • PathToResultsFilesRoot (String): è possibile specificare la radice del percorso della directory nell'agente di compilazione in cui vengono inseriti i file di risultati (con estensione trx) di MSTest.exe.

  • ToolPath (String): è possibile specificare il percorso della directory contenente la versione di MSTest.exe che si desidera eseguire. Se non si specifica un percorso, questo viene determinato automaticamente in Team Foundation Build in base ai dati presenti negli elenchi o nei contenitori di test.

Torna all'inizio

Ottenere un elenco di test interessati dalla compilazione (attività GetImpactedTests)

Utilizzare l'attività GetImpactedTests per identificare le modifiche al codice nella compilazione corrente e produrre un elenco di test interessati da tali modifiche. L'attività scrive l'elenco dei test interessati nel data warehouse per consentire ai membri del team di test di determinare i test che dovranno essere eseguiti una volta completata la compilazione. Per ulteriori informazioni sul modo in cui il team può utilizzare questi dati, vedere Test da eseguire da una compilazione precedente.

Nota

Questa attività non ha effetto sulle compilazioni di archiviazione gestita o sulle compilazioni private.

Condizioni necessarie

L'attività GetImpactedTests può funzionare solo se le condizioni seguenti sono vere:

  • L'attività MSTest è stata eseguita con un file di impostazioni di test (specificato nella proprietà TestSettings) in cui sono raccolti i dati di impatto sui test. È possibile utilizzare il file Traceandtestimpact.testsettings generato automaticamente oppure un altro file di impostazioni di test in cui è selezionata la casella di controllo Impatto test. Per ulteriori informazioni, vedere Procedura: raccogliere dati per verificare i test da eseguire dopo che sono state apportate modifiche al codice.

  • L'attività GetImpactedTests ha correttamente identificato la compilazione precedente. Per ulteriori informazioni, vedere la sezione successiva.

Come viene identificata la compilazione precedente da parte dell'attività GetImpactedTests

L'attività GetImpactedTests produce i risultati confrontando la compilazione corrente con quella precedente. L'attività identifica la compilazione precedente tramite la procedura seguente:

  1. Se si specifica la proprietà BaselineBuildDropLocation, la compilazione che genera tali file binari viene identificata come la compilazione precedente.

  2. Se non si specifica la proprietà BaselineBuildDropLocation, l'attività identifica la compilazione precedente cercando nel data warehouse la compilazione più recente che soddisfa tutti i criteri seguenti:

    • La compilazione presenta lo stesso BuildDefinitionUri della compilazione corrente.

    • L'elemento Status della compilazione è Succeeded o PartiallySucceeded.

    • La compilazione dispone di DropLocation.

    • La compilazione non è privata o di archiviazione gestita.

Proprietà Result di GetImpactedTests

  • CodeChanges (CodeChangeList): restituisce un elenco delle modifiche apportate a ogni metodo nel codice tra la compilazione corrente e quella precedente. I metodi vengono analizzati a livello di Microsoft Intermediate Language (MSIL).

  • ImpactedTests (TestList): restituisce un elenco dei test interessati dalle modifiche al codice tra la compilazione precedente e quella corrente.

Proprietà Argument di GetImpactedTests

  • Varie

    • Build: è necessario fornire l'oggetto IBuildDetail della compilazione. È possibile utilizzare l'attività GetBuildDetail per ottenere un riferimento a questo oggetto.
  • Varie

    • Assemblies (IEnumerable<String>): è necessario specificare un elenco degli assembly che dovranno essere esaminati da questa attività. Tali assembly vengono in genere compilati nella compilazione corrente.

    • AssociatedChangesets (IList<Changeset>): è possibile specificare gli insiemi di modifiche che si desidera associare con i risultati dell'impatto di test. È in genere consigliabile specificare gli insiemi di modifiche in corso di compilazione. È possibile ottenere un riferimento a tali insiemi di modifiche dall'attività AssociateChangesetsAndWorkItems.

    • BinariesRoot (String): è necessario specificare il percorso dei file binari da cui dipendono gli assembly. È possibile ottenere questo valore tramite l'attività GetBuildDirectory.

    • Workspace (Workspace): è necessario fornire un riferimento all'area di lavoro della compilazione. È possibile ottenere questo riferimento dalla proprietà Result dell'attività CreateWorkspace.

    • BaselineBuildDropLocation (String): è possibile specificare il percorso della cartella di ricezione contenente la compilazione completata che dovrà essere confrontata dall'attività GetImpactedTests con la compilazione corrente. Se non si specifica questa proprietà, l'attività tenta di eseguire una query sul sistema di compilazione della compilazione precedente. Per ulteriori informazioni, vedere "Come viene identificata la compilazione precedente da parte dell'attività GetImpactedTests" in questa sezione.

Torna all'inizio

Avviare un processo (attività InvokeProcess)

Utilizzare l'attività InvokeProcess per avviare un processo, ovvero eseguire un programma, sul server di compilazione. Questa attività è essenzialmente un wrapper su Start.

Proprietà Result di InvokeProcess (Int32)

Restituisce ExitCode dal processo.

Proprietà Argument di InvokeProcess

  • FileName (String): è necessario specificare FileName del processo che si desidera avviare, ovvero il programma da eseguire. Ad esempio, %ProgramFiles%\ContosoBuildUtils\MarkBins.exe.

  • Arguments (String): è possibile specificare gli argomenti della riga di comando (Arguments) che si desidera passare al processo.

  • EnvironmentVariables (IDictionary<String,String>): è possibile specificare le variabili di ambiente (EnvironmentVariables) e i relativi valori.

  • OutputEncoding (Encoding): è possibile specificare la codifica utilizzata per leggere l'output (StandardOutputEncoding) e i flussi di errore (RedirectStandardError). In molti casi il valore predefinito è il più appropriato per questa proprietà:

    System.Text.Encoding.GetEncoding(System.Globalization.CultureInfo.InstalledUICulture.TextInfo.OEMCodePage)
    
  • WorkingDirectory (String): è possibile specificare la directory di lavoro (WorkingDirectory) in cui si desidera eseguire il processo.

    È consigliabile, ad esempio, eseguire l'utilità MarkBins.exe sui file binari compilati. Per limitare l'ambito di esecuzione dell'utilità, è possibile chiamare GetBuildDirectory e inserire il risultato in questa proprietà.

Per visualizzare l'output standard e l'output degli errori del processo

  1. Nell'attività InvokeProcess fare doppio clic su Fare doppio clic per visualizzare.

  2. Trascinare un'attività WriteBuildMessage dalla Casella degli strumenti in modo che venga visualizzata in Gestisci output standard e impostare la proprietà Message di WriteBuildMessage su stdOutput.

  3. Trascinare un'attività WriteBuildError dalla Casella degli strumenti in modo che venga visualizzata in Gestisci output standard e impostare la proprietà Message di WriteBuildMessage su errOutput.

Utilizzare il controllo della versione

È possibile utilizzare le attività Team Foundation Build per effettuate le seguenti attività di controllo della versione:

  • Associare insiemi di modifiche ed elementi di lavoro alla compilazione

  • Archiviare le modifiche in sospeso

  • Valutare i criteri di archiviazione

  • Assegnare etichette ai file nel controllo della versione

Associare insiemi di modifiche ed elementi di lavoro alla compilazione (attività AssociateChangesetsAndWorkItems)

Utilizzare l'attività AssociateChangesetsAndWorkItems per collegare ogni compilazione completata a tutti gli insiemi di modifiche inseriti nel codice e agli elementi di lavoro associati.

Ogni definizione di compilazione gestisce un record dei set di modifiche e degli elementi di lavoro in attesa di essere associati alla successiva compilazione completata. Ad esempio, l'insieme di modifiche 382 può essere compilato sia da Compilazione A che da Compilazione B. Compilazione A viene accodata e completata correttamente, mentre Compilazione B viene accodata ma non viene completata. L'insieme di modifiche 382 è ora collegato a Compilazione A correttamente completata e a Compilazione B non completata. L'insieme di modifiche 382 non sarà collegato alla successiva compilazione completata di Compilazione A, ma lo sarà alla successiva compilazione correttamente completata di Compilazione B.

Proprietà Result di AssociateChangesetsAndWorkItems (IList<Changeset>)

Restituisce gli insiemi di modifiche associati alla compilazione.

Proprietà Argument di AssociateChangesetsAndWorkItems

  • CurrentLabel (String): lasciare vuota questa proprietà.

  • LastLabel (String): lasciare vuota questa proprietà.

  • UpdateWorkItems (Boolean): è possibile impostare il valore di questa proprietà su True se si desidera popolare il campo Corretto in degli elementi di lavoro associati con il numero build. In caso contrario, impostare il valore su False.

Torna all'inizio

Modifiche di archiviazione gestita (attività CheckInGatedChanges)

Utilizzare l'attività CheckInGatedChanges per archiviare nel controllo della versione le modifiche al codice che hanno attivato una compilazione di archiviazione gestita. Questa attività associa inoltre la compilazione agli elementi di lavoro associati agli insiemi di modifiche.

Nota

Per il corretto funzionamento, è necessario inserire questa attività nel modello dopo tutte le implementazioni delle attività MSBuild e MSTest.

Proprietà Result di CheckInGatedChanges (Changeset)

Restituisce l'insieme di modifiche contenente le modifiche in corso di archiviazione.

Proprietà Argument di CheckInGatedChanges

  • IgnoreErrors (Boolean): impostare questa proprietà su False per consentire l'archiviazione dei file solo se le proprietà CompilationStatus e TestStatus hanno entrambe un valore Succeeded. Impostare questa proprietà su True per consentire l'archiviazione dei file indipendentemente dai valori di tali proprietà.

    Nota

    È possibile utilizzare l'attività SetBuildProperties per impostare le proprietà CompilationStatus e TestStatus.

  • UpdateWorkItems (String): impostare questo valore su True se si desidera popolare il campo Corretto in degli elementi di lavoro associati con il numero build. In caso contrario, impostarlo su False.

Torna all'inizio

Valutare i criteri di archiviazione (attività EvaluateCheckInPolicies)

Utilizzare l'attività EvaluateCheckInPolicies per eseguire i criteri di archiviazione sul server di compilazione. Questa attività esegue i criteri di archiviazione attivi per le cartelle specificate nella scheda Area di lavoro della definizione di compilazione. La compilazione non funziona in caso di errore dei criteri di archiviazione e se il motivo della compilazione è CheckInShelveset (compilazione di archiviazione gestita) o ValidateShelveset (compilazione privata).

Importante

I criteri di archiviazione vengono valutati sul server di compilazione, non sul computer client dello sviluppatore.

Per utilizzare in modo più efficace questa attività, applicare maggiori controlli di qualità utilizzandola insieme alle compilazioni di archiviazione gestita. L'utilizzo dell'attività in questo modo impedisce all'utente di ignorare i criteri di archiviazione. Questa attività è particolarmente utile per i seguenti tipi di criteri di archiviazione:

  • Criteri di archiviazione Work Items incorporati

  • Criteri di archiviazione personalizzati destinati alla valutazione sul server di compilazione

Questa attività non è utile per la valutazione dei criteri di archiviazione incorporati Builds o Code Analysis, in quanto tali processi possono essere eseguiti in modo più efficiente direttamente in una compilazione utilizzando le attività MSBuild e MSTest.

Per ulteriori informazioni, vedere le seguenti risorse:

Proprietà Argument di EvaluateCheckInPolicies

  • Workspace (Workspace): è necessario specificare l'area di lavoro che si desidera valutare. Nella maggior parte dei casi è consigliabile impostare questa proprietà sulla variabile inizializzata nella proprietà Result dell'attività CreateWorkspace. Se si crea un processo di compilazione basato su DefaultTemplate.xaml, è consigliabile utilizzare la variabile Workspace.

Torna all'inizio

Assegnare etichette ai file nel controllo della versione

È possibile assegnare etichette ai file tramite le attività Team Foundation Build:

  • Assegnare etichette al codice sorgente in corso di compilazione

  • Assegnare etichette ai file

Assegnare etichette al codice sorgente in corso di compilazione (attività LabelWorkspace)

È consigliabile assegnare etichette ai file di codice sorgente nel controllo della versione in modo che il team possa identificare facilmente la versione di ogni file inclusa in una determinata compilazione completata. Utilizzare l'attività LabelWorkspace per includere questo passaggio nel processo di compilazione.

Proprietà Argument di LabelWorkspace

  • Name (String): è necessario specificare il nome dell'etichetta.

  • Child (LabelChildOption): è necessario specificare come gestire gli elementi che già dispongono di etichette corrispondenti all'etichetta specificata. Questa proprietà equivale all'opzione /child del comando tf label.

  • Workspace (Workspace): è necessario fornire un riferimento all'area di lavoro della compilazione corrente. Nella maggior parte dei casi è consigliabile impostare questa proprietà sulla variabile inizializzata nella proprietà Result dell'attività CreateWorkspace. Se si crea un processo di compilazione basato su DefaultTemplate.xaml, è consigliabile utilizzare la variabile Workspace.

  • Comment (String): è possibile specificare un commento relativo all'etichetta. Questa proprietà equivale all'opzione /comment del comando tf label.

  • Scope (String): è possibile specificare un ambito relativo all'etichetta. Questa proprietà equivale all'argomento @scope del comando tf label.

Per ulteriori informazioni sui parametri tf label, vedere Label Command (Team Foundation Version Control).

Torna all'inizio

Assegnare etichette ai file (attività di LabelSources)

Utilizzare l'attività LabelSources per assegnare etichette ai file nel controllo della versione.

Suggerimento

È spesso possibile assegnare le etichette ai file di codice sorgente in corso di compilazione in modo più efficiente utilizzando l'attività LabelWorkspace.

Proprietà Argument di LabelSources

  • Items (IEnumerable<String>): è necessario specificare gli elementi a cui si desidera assegnare etichette. Ogni elemento String equivale a un argomento itemspec del comando tf label.

  • Name (String): è necessario specificare il nome dell'etichetta.

  • Scope (String): è necessario specificare un ambito relativo all'etichetta. Questa proprietà equivale all'argomento @scope del comando tf label.

  • Recursion (RecursionType): è possibile specificare Microsoft.TeamFoundation.VersionControl.Client.RecursionType.Full se si desidera assegnare etichette a tutti i file in una gerarchia di directory. In caso contrario, è possibile specificare Microsoft.TeamFoundation.VersionControl.Client.RecursionType.OneLevel.

  • Version (String): è necessario fornire la versione degli elementi a cui si desidera assegnare etichette. Questa proprietà equivale all'opzione /version del comando tf label.

  • Child (LabelChildOption): è necessario specificare come gestire gli elementi che già dispongono di etichette corrispondenti all'etichetta specificata. Questa proprietà equivale all'opzione /child del comando tf label.

  • Comment (String): è possibile specificare un commento relativo all'etichetta. Questa proprietà equivale all'opzione /comment del comando tf label.

Per ulteriori informazioni sui parametri tf label, vedere Label Command (Team Foundation Version Control).

Torna all'inizio

Ottenere un elenco di shelveset (attività QueryShelvesets)

Utilizzare l'attività QueryShelvesets per ottenere un elenco degli shelveset che soddisfano i criteri. È quindi possibile utilizzare l'attività TfUnshelve per recuperare il contenuto di uno qualunque degli shelveset.

Risultato di QueryShelvesets (IList<Shelveset>)

Proprietà dell'argomento QueryShelvesets

Attività TfGet

Questa attività esegue il wrapping di Comando Get.

Attività TfResolve

Questa attività esegue il wrapping di Resolve Command.

Attività TfShelve

Questa attività esegue il wrapping di Comando Shelve.

Attività TfUndo

Questa attività esegue il wrapping di Comando Undo.

Attività TfUnshelve

Questa attività esegue il wrapping di Comando Unshelve.

Attività TfWorkfold

Questa attività esegue il wrapping di Workfold Command.

Utilizzare elementi di lavoro

È possibile utilizzare elementi di lavoro tramite le attività Team Foundation Build:

  • Associare insiemi di modifiche ed elementi di lavoro alla compilazione

  • Creare un elemento di lavoro

Creare un elemento del lavoro (attività OpenWorkItem)

Utilizzare l'attività OpenWorkItem per creare un elemento di lavoro.

Proprietà Result di OpenWorkItem (WorkItem)

Restituisce il nuovo elemento di lavoro.

Proprietà Argument di OpenWorkItem

  • AssignedTo (String): è necessario specificare la persona alla quale si desidera assegnare l'elemento di lavoro.

  • Title (String): è necessario specificare il titolo dell'elemento di lavoro.

  • Type (String): è necessario specificare il tipo di elemento di lavoro. I tipici valori Type includono gli esempi seguenti: “Bug”, “Issue” e “Task”.

  • Comment (String): è possibile aggiungere un commento alla cronologia dell'elemento di lavoro.

  • CustomFields (IDictionary<String,String>): è possibile specificare il valore di uno o più campi diversi dell'elemento di lavoro.

Torna all'inizio

Utilizzare dati dei simboli

È possibile utilizzare dati dei simboli tramite due attività Team Foundation Build: IndexSources e PublishSymbols.

Queste attività vengono utilizzate solitamente per abilitare il debug IntelliTrace. Se si desidera abilitare il debug IntelliTrace, è consigliabile chiamare innanzitutto l'attività IndexSources per preparare i dati dei simboli, quindi chiamare l'attività PublishSymbols per pubblicare i dati in un archivio simboli SymStore.

Per ulteriori informazioni sul debug IntelliTrace, vedere Eseguire il debug dell'app registrando l'esecuzione del codice con IntelliTrace.

Incorporare percorsi del controllo della versione e versioni nei dati dei simboli dei file con estensione PDB (attività IndexSources)

Utilizzare l'attività IndexSources per incorporare i percorsi del controllo della versione e le versioni nei dati dei simboli dei file con estensione pdb.

Proprietà Argument di IndexSources

  • FileList (IEnumerable<String>): è necessario specificare il percorso completo e il nome di ogni file dei simboli. Per fornire questo argomento è possibile utilizzare l'attività FindMatchingFiles.

    Per specificare una ricerca ricorsiva è possibile utilizzare **. Ad esempio, è possibile chiamare FindMatchingFiles con il seguente valore nella proprietà MatchPattern: String.Format("{0}\**\*.pdb", BinariesDirectory).

Torna all'inizio

Pubblicare simboli in un archivio simboli SymStore (attività PublishSymbols)

Utilizzare l'attività PublishSymbols per pubblicare i dati dei simboli nei file con estensione PDB in un archivio simboli SymStore. Questa attività è essenzialmente un wrapper su SymStore.exe. Per informazioni sugli archivi simboli SymStore e su come prepararne uno, vedere Indicizzare e pubblicare i dati dei simboli.

Importante

I dati possono venire danneggiati se compilazioni simultanee tentano di effettuare la pubblicazione nella stessa condivisione di file dei simboli.Per ridurre tale rischio, è consigliabile chiamare questa attività solo all'interno di un'attività SharedResourceScope.

Proprietà Result di PublishSymbols (String)

Restituisce l'ID della transazione restituito da SymStore.exe.

Proprietà Argument di PublishSymbols

  • FileList (IEnumerable<String>): è necessario specificare il percorso completo e il nome di ogni file dei simboli. Per fornire questo argomento è possibile utilizzare l'attività FindMatchingFiles.

    Ad esempio, è possibile chiamare FindMatchingFiles con il seguente valore nella proprietà MatchPattern: String.Format("{0}\**\*.pdb", BinariesDirectory).

  • StorePath (String): è necessario specificare il percorso di file UNC della cartella radice dell'archivio simboli SymStore.

  • CommandLineArguments (String): per informazioni sugli argomenti aggiuntivi che è possibile passare a SymStore.exe, vedere la pagina relativa alle opzioni della riga di comando di SymStore.

  • Comments (String): è possibile specificare commenti di transazione registrati nel file di cronologia della transazione nell'archivio simboli. Questa proprietà equivale al parametro /c Comment del comando SymStore.exe. Per ulteriori informazioni, vedere Opzioni della riga di comando di SymStore.

  • ProductName (String): è possibile specificare il nome del prodotto che viene registrato nel file di cronologia della transazione nell'archivio simboli. È possibile, ad esempio, impostare questa proprietà sul nome della definizione di compilazione (Name), che si ottiene della proprietà BuildDefinition chiamando GetBuildDetail. Questa proprietà equivale al parametro /t Product del comando SymStore.exe. Per ulteriori informazioni, vedere Opzioni della riga di comando di SymStore.

  • StoreCompressed (Boolean): è possibile impostare questo valore su True per archiviare i file nell'archivio simboli come file compressi. In caso contrario, i file verranno archiviati senza essere compressi. Questa proprietà equivale al parametro /compress del comando SymStore.exe. Per ulteriori informazioni, vedere Opzioni della riga di comando di SymStore.

  • Version (String): è possibile, ad esempio, impostare questa proprietà sul numero build (BuildNumber) che si ottiene chiamando GetBuildDetail. Questa proprietà equivale al parametro /v Version del comando SymStore.exe. Per ulteriori informazioni, vedere Opzioni della riga di comando di SymStore.

Torna all'inizio

Ottenere riferimenti a oggetti utili

È possibile ottenere riferimenti a oggetti utili tramite le attività Team Foundation Build.

Ottenere un riferimento all'oggetto per una raccolta di progetti team (attività GetTeamProjectCollection)

Utilizzare l'attività GetTeamProjectCollection per ottenere un riferimento a un oggetto TfsTeamProjectCollection dalla relativa proprietà Result. Questo oggetto iniziale è importante. Può infatti essere utilizzato, ad esempio, per connettersi a un server a livello applicazione per Team Foundation.

Ottenere un riferimento all'oggetto IBuildAgent (attività GetBuildAgent)

Utilizzare l'attività GetBuildAgent per ottenere un riferimento all'oggetto IBuildAgent dalla relativa proprietà Result. È possibile utilizzare questa attività solo all'interno di un'attività AgentScope.

Ottenere un riferimento all'oggetto IBuildDetail (attività GetBuildDetail)

Utilizzare l'attività GetBuildDetail per ottenere un riferimento all'oggetto IBuildDetail dalla relativa proprietà Result. È possibile utilizzare questo oggetto per ottenere e in alcuni casi impostare dati relativi alla compilazione corrente.

Torna all'inizio

Ottenere un riferimento all'oggetto BuildEnvironment (attività GetBuildEnvironment)

Utilizzare l'attività GetBuildEnvironment per ottenere un riferimento all'oggetto BuildEnvironment tramite la relativa proprietà Result. Questa proprietà viene in genere utilizzata per effettuare le seguenti attività:

  • Utilizzare l'oggetto Environment per determinare se il segmento corrente del flusso di lavoro viene eseguito nel controller di compilazione o nell'agente di compilazione.

  • Utilizzare l'oggetto CustomAssemblyPath per ottenere il percorso degli assembly contenenti le attività personalizzate nell'agente di compilazione.

Torna all'inizio

Attività non destinate alla modifica in un processo di compilazione personalizzato

Per alcune attività non è prevista la modifica in un processo di compilazione personalizzato.

ApproveRequestForCheckIn

Ignorare questa attività.

Torna all'inizio

Attività CreateWorkspace

Ignorare questa attività.

Torna all'inizio

DeleteWorkspace

Ignorare questa attività.

Torna all'inizio

GenerateRunSettings

Ignorare questa attività.

Torna all'inizio

GetApprovedRequests

Ignorare questa attività.

Torna all'inizio

GetPendingChanges

Ignorare questa attività.

Torna all'inizio

GetRejectedRequests

Ignorare questa attività.

Torna all'inizio

GetReshelvedShelveset

Ignorare questa attività.

Torna all'inizio

GetShelvedChanges

Ignorare questa attività.

Torna all'inizio

GetWorkspace

Ignorare questa attività.

Torna all'inizio

ParseWorkspaceSpec

Ignorare questa attività.

Torna all'inizio

RejectRequestFromCheckIn

Ignorare questa attività.

Torna all'inizio

RetryRequest

Ignorare questa attività.

Torna all'inizio

RetryRequests

Ignorare questa attività.

Torna all'inizio

RevertWorkspace

Ignorare questa attività.

Torna all'inizio

RunOnce

Non documentato nella versione corrente.

SyncWorkspace

Ignorare questa attività.

Torna all'inizio

SynchronizeRequests

Ignorare questa attività.

Torna all'inizio

Attività TfsBuild

Ignorare questa attività.

Torna all'inizio

TfQueryConflicts

Ignorare questa attività.

Torna all'inizio

Vedere anche

Concetti

Utilizzare il modello predefinito per il processo di compilazione

Distribuire e configurare un controller di compilazione

Distribuire e configurare agenti di compilazione

Altre risorse

Progettazione flussi di lavoro di Visual Studio 2010

Windows Workflow Foundation

Riferimenti a MSBuild

Visualizzare i risultati di compilazione