Procedura: personalizzare numeri di generazione
Aggiornamento: novembre 2007
È possibile personalizzare Team Foundation Build creando attività personalizzate da eseguire durante una compilazione. In questo argomento vengono illustrati i passaggi necessari per personalizzare una definizione di compilazione di Team Foundation Build con un'attività per la creazione di numeri di compilazione.
Prerequisiti
Prima di creare l'attività per la personalizzazione dei numeri di generazione, è necessario disporre dei seguenti elementi:
Accesso al file TFSBuild.proj della definizione di compilazione che si desidera personalizzare.
Il file TFSBuild.proj può essere associato a più definizioni di compilazione. Per determinare il percorso di controllo del codice sorgente del file TFSBuild.proj, selezionare la definizione di compilazione nella cartella Compilazioni in Team Explorer, fare clic con il pulsante destro del mouse su di essa, quindi scegliere Modifica. Il percorso del controllo del codice sorgente relativo al file TFSBuild.proj viene visualizzato nel riquadro File di progetto della finestra di dialogo Definizione di compilazione. Per impostazione predefinita, il file TFSBuild.proj si trova nella cartella $/ProgettoTeam/TeamBuildTypes/NomeCompilazione in Controllo della versione di Team Foundation. ProgettoTeam è il nome del progetto Team e il nodo principale di tutte le origini del progetto Team. NomeCompilazione è il nome assegnato alla prima definizione di compilazione associata al file TFSBuild.proj. Per ulteriori informazioni sulla modalità di creazione dei tipi di compilazione Team Foundation Build, vedere Procedura: creare una definizione di compilazione.
Nota importante: Quando si personalizza il file TFSBuild.proj, viene personalizzata ogni definizione di compilazione associata al file.
Un'area di lavoro locale contenente i file del progetto Team e i file di generazione nel computer locale.
Per ulteriori informazioni, vedere Procedura: creare un'area di lavoro mappata e Procedura: ottenere il codice sorgente per il progetto team.
Autorizzazioni necessarie.
Per completare questa attività, è necessario che le autorizzazioni Amministra generazione e Amministra aree di lavoro siano impostate su Consenti. È inoltre necessario che le autorizzazioni Archivia ed Estrai siano impostate su Consenti. Per ulteriori informazioni, vedere Autorizzazioni per Team Foundation Server.
Scrittura dell'attività relativa al numero di generazione
Per scrivere l'attività, è possibile implementare direttamente l'interfaccia ITask o derivare la classe da una classe helper Task. L'interfaccia ITask è definita nell'assembly Microsoft.Build.Framework.dll e la classe Task è definita nell'assembly Microsoft.Build.Utilitites.dll.
Per personalizzare il numero di compilazione generato da Team Foundation Build, è necessario inserire l'attività nella destinazione BuildNumberOverrideTarget. Per BuildNumberOverrideTarget è necessaria una proprietà di output denominata BuildNumber.. L'attributo Output indica che la proprietà rappresenta l'output dell'attività personalizzata. Per ulteriori informazioni sulle destinazioni di Team Foundation Build, vedere Destinazioni personalizzabili di Team Foundation Build.
Per scrivere l'attività personalizzata
Creare una libreria di classi di Visual C# denominata AttivitàPersonalizzata contenente l'attività personalizzata.
Per ulteriori informazioni, vedere Classi di componenti.
Scegliere Aggiungi riferimento dal menu Progetto, quindi selezionare Microsoft.Build.Framework e Microsoft.Build.Utilities nella finestra di dialogo Aggiungi riferimento.
Inserire il seguente codice nel file class.cs.
Questo esempio eredita dalla classe helper Task e prevede l'utilizzo delle proprietà DateTimeUtcNow e Ticks per creare il numero di generazione.
using System; using Microsoft.Build.Utilities; using Microsoft.Build.Framework; namespace BuildNumberGenerator { public class BuildNumberGenerator:Task { public override bool Execute() { m_buildNumber = DateTime.UtcNow.Ticks.ToString(); return true; } private string m_buildNumber; [Output] public string BuildNumber { get { return m_buildNumber; } } } }
Compilare la libreria di classi per generare MyTask.dll.
Copiare la DLL generata nella cartella dell'area di lavoro locale contenente anche il file TFSBuild.proj del tipo di compilazione.
Nota importante: È necessario mappare il percorso di controllo del codice sorgente del file TFSBuild.proj all'area di lavoro locale prima della creazione della struttura di directory nel computer client. Per ulteriori informazioni, vedere Procedura: ottenere il codice sorgente per il progetto team.
Se il file TFSBuild.proj è archiviato nella cartella predefinita all'interno del controllo del codice sorgente, la copia locale del file si trova in <radice>:\Area di lavoro locale\TipidiCompilazioneTeam\NomeCompilazione sul computer client. Area di lavoro locale rappresenta la cartella locale alla quale è mappato il progetto Team, ProgettoTeam è il nome del progetto Team e NomeCompilazione è il nome assegnato alla prima definizione di compilazione associata al file TFSBuild specificato.
Aggiunta del file DLL al controllo del codice sorgente
Dopo avere creato la DLL contenente l'attività personalizzata, è necessario aggiungerla a Controllo della versione di Team Foundation. È possibile utilizzare i comandi tf add e tf checkin per aggiungere e archiviare la DLL nello stesso percorso del file TFSBuild.proj della definizione di compilazione. Per ulteriori informazioni, vedere Comando Add e Comando Checkin.
Per aggiungere e archiviare l'assembly
Fare clic su Start, scegliere Tutti i programmi, Microsoft Visual Studio 9.0, Visual Studio Tools, quindi Prompt dei comandi di Visual Studio 2008. Aprire l'area di lavoro locale di cui è stato eseguito il mapping per il progetto Team contenente il tipo di generazione che si desidera personalizzare.
Al prompt dei comandi digitare, ad esempio, quanto segue.
> cd c:\MyTeamProject
Dove MyTeamProject è il nome del progetto Team.
Spostarsi nel percorso in cui è archiviato il file TFSBuild.proj.
Al prompt dei comandi digitare, ad esempio, quanto segue.
c:\MyTeamProject>cd TeamBuildTypes\MyBuildName
Dove MyBuildName è il nome della definizione di compilazione.
Per aggiungere il file a Controllo della versione di Team Foundation, digitare il seguente comando.
c:\MyTeamProject\TeamBuildTypes\MyBuildName> tf add MyTask.dll
Per archiviare il file in Controllo della versione di Team Foundation, digitare il seguente comando.
c:\MyTeamProject\TeamBuildTypes\MyBuildName> tf checkin MyTask.dll
È inoltre possibile utilizzare Team Explorer per aggiungere la DLL a Controllo della versione di Team Foundation. Per ulteriori informazioni, vedere Procedura: aggiungere un progetto o una soluzione al controllo della versione.
Registrazione dell'attività
Dopo avere creato l'attività, è necessario registrarla includendola in un elemento UsingTask del file TFSBuild.proj. L'elemento UsingTask associa l'attività all'assembly che ne contiene l'implementazione. Per ulteriori informazioni, vedere Elemento UsingTask (MSBuild).
Per registrare l'attività modificando il file TFSBuild.proj
Avviare Visual Studio.
Estrarre il file TFSBuild.proj che si desidera modificare da Controllo della versione di Team Foundation e aprirlo nell'editor XML di Visual Studio.
Aggiungere l'elemento UsingTask al file TFSBuild.proj immediatamente dopo l'istruzione Import.
<UsingTask TaskName="BuildNumberGenerator.BuildNumberGenerator" AssemblyFile="MyTask.dll"/>
Per inserire l'attività nella destinazione BuildNumberOverrideTarget, aggiungere il seguente codice XML, racchiuso tra i tag <Target></Target>, alla fine del file TFSBuild.proj.
</ItemGroup> <Target Name = "BuildNumberOverrideTarget" > <BuildNumberGenerator> <Output TaskParameter="BuildNumber" PropertyName="BuildNumber"/> </BuildNumberGenerator> </Target> </Project>
Scegliere Salva dal menu File per salvare le modifiche, quindi chiudere TFSBuild.proj.
Nota: Dopo aver apportato queste modifiche al file TFSBuild.proj, verranno visualizzati appositi avvisi nello schema XML. È possibile ignorare in modo sicuro questi avvisi.
Archiviare di nuovo TFSBuild.proj nel controllo del codice sorgente.
Dopo avere modificato il file TFSBuild.proj e avere salvato le modifiche in Controllo della versione di Team Foundation, eseguire la definizione di compilazione.
Per ulteriori informazioni, vedere Procedura: accodare o avviare una definizione di compilazione.
È possibile visualizzare il numero di compilazione personalizzato in Esplora compilazione. Per ulteriori informazioni, vedere Procedura: monitorare l'avanzamento della generazione.