Utilizzare e sviluppare attività del processo di compilazione personalizzate
Dopo aver creato un modello di processo di compilazione personalizzato, è possibile applicare la logica di business mediante istruzioni di Windows Workflow e attività predefinite di Team Foundation Build (TFBuild). Se questi strumenti non sono sufficienti, è possibile usare attività di terze parti o, se necessario, implementare il proprio codice .NET Framework in un oggetto CodeActivity. Suggerimento Se le funzionalità di processo di compilazione personalizzato possono essere codificate in un file batch di Windows o in uno script PowerShell, è possibile caricare lo script ed eseguirlo come parte del processo di compilazione.Questo approccio può essere più veloce e più semplice rispetto a creare un processo di compilazione personalizzato.Vedere Eseguire uno script nel processo di compilazione.
|
Creare un'attività del processo di compilazione personalizzato
Importante
Prima di iniziare, creare una copia del modello e inserirla in un progetto di codice.Se questa operazione non è stata eseguita, in questa sezione viene illustrato come effettuarla.
È necessario sviluppare l'attività del processo di compilazione nella stessa soluzione dei modelli di processo di compilazione.Se si opera in questo modo, quando è necessario usare una delle attività nel modello di processo, l'attività è disponibile nella casella degli strumenti di Progettazione flusso di lavoro.È necessario tuttavia mantenere il codice sorgente per le attività in un progetto di codice diverso da quello che contiene i modelli di processo di compilazione.
Aggiungere un nuovo progetto di codice C# o Visual Basic alla soluzione contenente il progetto di codice del modello di processo di compilazione.
Aggiungere i riferimenti seguenti al nuovo progetto di codice:
Come è possibile aggiungere tali riferimenti al progetto di codice?
Salvare il progetto di codice.
Aggiungere una nuova attività al progetto.
Implementare l'oggetto CodeActivity, ad esempio, Hello.cs:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Activities; using Microsoft.TeamFoundation.Build.Workflow.Activities; using Microsoft.TeamFoundation.Build.Client; using Microsoft.TeamFoundation.Build.Workflow.Tracking; namespace BuildProcessSource { // enable the build process template to load the activity [BuildActivity(HostEnvironmentOption.All)] // keep the internal activity operations from appearing in the log [ActivityTracking(ActivityTrackingOption.ActivityOnly)] public sealed class Hello : CodeActivity { // Define an activity input argument of type string public InArgument<string> SayHelloTo { get; set; } // If your activity returns a value, derive from CodeActivity<TResult> // and return the value from the Execute method. protected override void Execute(CodeActivityContext context) { // Obtain the runtime value of the Text input argument string text = context.GetValue(this.SayHelloTo); // Add our default value if we did not get one if (text == null || text == "") { text = "World"; } // Write the message to the log context.TrackBuildWarning("Hello " + text, BuildMessageImportance.High); } } }
Non è necessario alcun file Activity1.xaml, pertanto è possibile eliminarlo se si desidera.
Compilare la soluzione in Visual Studio (tastiera: CTRL + MAIUSC + B).
Al termine, la soluzione dovrebbe risultare simile al seguente:
Modificare il modello di processo di compilazione
Nella soluzione modificare il modello di processo di compilazione trascinandovi le attività. Dopo l'aggiunta dell'attività al modello, impostarne le proprietà (tastiera: F4).
Al termine, salvare il modello.
Caricare il processo di compilazione personalizzato
Prima di poter definire una compilazione che usa il modello di processo di compilazione personalizzato, è necessario caricarla e attivarla.
Caricare e abilitare il processo di compilazione personalizzato in un progetto team TFVC
Caricare e abilitare il processo di compilazione personalizzato in un progetto team Git
Caricare il processo di compilazione personalizzato in un progetto team TFVC
In un progetto team TFVC:
Assicurarsi di aver compilato la soluzione (tastiera: CTRL+MAIUSC+B).
Connettersi (tastiera: CTRL+0, C) al progetto team in cui si intende archiviare l'origine del processo di compilazione.
In Esplora controllo codice sorgente aggiungere elementi alla cartella che contiene il progetto di codice dell'attività.
Passare alla cartella che contiene il file con estensione dll e selezionarlo. Esempio: C:\Utenti\NomeUtente\Source\Workspaces\FabrikamTFVC\BuildProcessTemplates\BuildProcessSource\Source\bin\Debug.
Completare il processo per aggiungere il file.
Archiviare le modifiche.
Caricare il processo di compilazione personalizzato in un progetto team Git
In a progetto team Git:
Importante:
l'archiviazione di file binari (particolarmente nel caso di numerose revisioni a file di grandi dimensioni) può aumentare notevolmente le dimensioni del repository Git. Si consiglia di archiviare i file binari del processo di compilazione personalizzato in un repository separato dal codice in cui si compila l'applicazione. È possibile creare un progetto team diverso a tale scopo oppure è possibile creare un repository aggiuntivo nel progetto team esistente.
È necessario archiviare i file binari in una sottocartella nel repository Git. Se si tenta di usare file binari nella cartella radice, potrebbe venire visualizzato un messaggio di errore relativo a branch Git non trovato che blocca l'utente.
Assicurarsi di aver compilato la soluzione (tastiera: CTRL+MAIUSC+B).
Connettersi (tastiera: CTRL+0, C) al progetto team in cui si intende archiviare l'origine del processo di compilazione.
Aprire la finestra del prompt dei comandi Git.
D: Non riesco ad aprire il prompt dei comandi. Quale operazione devo eseguire? R: abilitare il prompt dei comandi Git.
Usare il prompt dei comandi Git per aggiungere il file con estensione dll. Ad esempio:
cd c:\users\YourName\source\repos\BuildProcesses\BuildProcessSource\Source\bin\Debug git add Source.dll -f
Eseguire il commit delle modifiche.
Sincronizzare o eseguire il push del commit.
Abilitare il processo di compilazione personalizzato
Prima di eseguire il processo di compilazione personalizzato, è necessario indirizzare il controller di compilazione ai file binari caricati in TFS e selezionare il modello di processo di compilazione nella definizione di compilazione.
Nella pagina delle compilazioni (tastiera: CTRL+0, B) scegliere Azioni, quindi scegliere Gestisci controller di compilazione.
Nella finestra di dialogo Gestisci controller di compilazione evidenziare il controller che verrà usato per eseguire questo processo di compilazione, quindi scegliere Proprietà.
Specificare il percorso del controllo della versione agli assembly personalizzati.
Passare a una cartella predecessore della cartella in cui è stato caricato il processo di compilazione nei passaggi precedenti.
Esempio TFVC: $/FabrikamTFVC/BuildProcessTemplates/BuildProcessSource/Source/bin/Debug
Esempio Git: BuildProcessSource/Source/Bin/Debug
Il sistema converte automaticamente il valore immesso in un percorso vstfs. Esempio: vstfs:///Git/VersionedItem/FabrikamGit/BuildProcesses/master/BuildProcessSource/Source/Bin/Debug.
Se non è ancora stato fatto, creare o modificare una definizione di compilazione e selezionare il modello di processo di compilazione personalizzato.
Eseguire la compilazione
Accodare la compilazione. Il risultato dovrebbe essere analogo al seguente:
Domande e risposte
D: Sono stato bloccato dal sistema perché non dispongo dell'autorizzazione.Come posso ottenerla?
R: Riferimento alle autorizzazioni per Team Foundation Server
D: Come è possibile aggiungere i riferimenti necessari per usare il flusso di lavoro TFBuild?
R: Usare Gestione riferimenti.
Visualizzare i riferimenti del progetto di codice e aprire Gestione riferimenti.
Spostarsi in C:\Programmi (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ReferenceAssemblies\v2.0, quindi selezionare e aggiungere:
D: Cosa sta provocando errori nel processo di compilazione personalizzato?
R: alcune cause comuni di errore.
D: Cos'è Windows Workflow Foundation?Come si usa?
R: Windows Workflow Foundation.
D: Dove è possibile trovare informazioni sulle attività incorporate?
R: attività di Team Foundation Build
D: Dove è possibile ottenere modelli di processo di compilazione, attività di flusso di lavoro e script?
R: Estensioni di compilazione TFS della community
D: Dove è possibile reperire altre informazioni sullo sviluppo di processi di compilazione personalizzati?
R: Risposta curata: personalizzare il processo di Team Foundation Build