Share via


Creazione di una definizione di compilazione che supporta la distribuzione

di Jason Lee

Per eseguire qualsiasi tipo di compilazione in Team Foundation Server (TFS) 2010, è necessario creare una definizione di compilazione all'interno del progetto team. Questo argomento descrive come creare una nuova definizione di compilazione in TFS e come controllare la distribuzione Web come parte del processo di compilazione in Team Build.

Questo argomento fa parte di una serie di esercitazioni basate sui requisiti di distribuzione aziendali di una società fittizia denominata Fabrikam, Inc. Questa serie di esercitazioni usa una soluzione di esempio, la soluzione Contact Manager, per rappresentare un'applicazione Web con un livello realistico di complessità, tra cui un'applicazione ASP.NET MVC 3, un servizio Windows Communication Foundation (WCF) e un progetto di database.

Il metodo di distribuzione al centro di queste esercitazioni si basa sull'approccio split project file descritto in Informazioni sul file di progetto, in cui il processo di compilazione e distribuzione è controllato da due file di progetto, uno contenente le istruzioni di compilazione applicabili a ogni ambiente di destinazione e uno contenente le impostazioni di compilazione e distribuzione specifiche dell'ambiente. In fase di compilazione, il file di progetto specifico dell'ambiente viene unito al file di progetto indipendente dall'ambiente per formare un set completo di istruzioni di compilazione.

Panoramica delle attività

Una definizione di compilazione è il meccanismo che controlla come e quando vengono eseguite le compilazioni per i progetti team in TFS. Ogni definizione di compilazione specifica:

  • Elementi da compilare, ad esempio file di soluzione di Visual Studio o file di progetto di Microsoft Build Engine personalizzati (MSBuild).
  • Criteri che determinano quando deve essere eseguita una compilazione, ad esempio trigger manuali, integrazione continua (CI) o check-in controllati.
  • Percorso in cui Team Build deve inviare output di compilazione, inclusi artefatti di distribuzione come pacchetti Web e script di database.
  • Intervallo di tempo per cui ogni compilazione deve essere mantenuta.
  • Vari altri parametri del processo di compilazione.

Nota

Per altre informazioni sulle definizioni di compilazione, vedere Definire il processo di compilazione.

Questo argomento illustra come creare una definizione di compilazione che usa l'integrazione continua, in modo che venga attivata una compilazione quando uno sviluppatore archivia nuovi contenuti. Se la compilazione ha esito positivo, il servizio di compilazione esegue un file di progetto personalizzato per distribuire la soluzione in un ambiente di test.

Quando si attiva una compilazione, queste azioni devono essere eseguite:

  • Prima di tutto, Team Build deve compilare la soluzione. Nell'ambito di questo processo, Team Build richiamerà la pipeline di pubblicazione Web (WPP) per generare pacchetti di distribuzione Web per ogni progetto di applicazione Web nella soluzione. Team Build eseguirà anche tutti gli unit test associati alla soluzione.
  • Se la compilazione della soluzione ha esito negativo, Team Build non deve eseguire altre azioni. Gli errori di unit test devono essere considerati come errori di compilazione.
  • Se la compilazione della soluzione ha esito positivo, Team Build deve eseguire il file di progetto personalizzato che controlla la distribuzione della soluzione. Nell'ambito di questo processo, Team Build richiamerà lo strumento di distribuzione Web Internet Information Services (IIS) (Distribuzione Web) per installare le applicazioni Web in pacchetto nei server Web di destinazione e richiamerà l'utilità VSDBCMD.exe per eseguire script di creazione di database nei server di database di destinazione.

Questo illustra il processo:

Illustra il processo precedente.

La soluzione di esempio Contact Manager include un file di progetto MSBuild personalizzato, Publish.proj, che è possibile eseguire da MSBuild o Team Build. Come descritto in Informazioni sul processo di compilazione, questo file di progetto definisce la logica che distribuisce i pacchetti Web e i database in un ambiente di destinazione. Il file include la logica che omette il processo di compilazione e creazione di pacchetti se è in esecuzione in Team Build, lasciando solo le attività di distribuzione da eseguire. Ciò è dovuto al fatto che quando si automatizza la distribuzione in questo modo, in genere si vuole assicurarsi che la soluzione venga compilata correttamente e superi gli unit test prima che il processo di distribuzione venga completato.

La sezione successiva illustra come implementare questo processo creando una nuova definizione di compilazione.

Nota

Questa procedura, in cui un singolo processo automatizzato compila, testa e distribuisce una soluzione, è probabilmente più adatto alla distribuzione per gli ambienti di test. Per gli ambienti di gestione temporanea e di produzione è molto più probabile che si voglia distribuire contenuto da una build precedente già verificata e convalidata in un ambiente di test. Questo approccio è descritto nell'argomento successivo , Distribuzione di una compilazione specifica.

Chi esegue questa procedura?

In genere, un amministratore tfs esegue questa procedura. In alcuni casi, un responsabile del team di sviluppo può assumere la responsabilità della raccolta di progetti team in TFS. Per creare una nuova definizione di compilazione, è necessario essere membri del gruppo Project Collection Build Administrators per la raccolta di progetti team che contiene la soluzione.

Creare una definizione di compilazione per l'integrazione continua e la distribuzione

La procedura successiva descrive come creare una definizione di compilazione attivata dall'integrazione continua. Se la compilazione ha esito positivo, la soluzione viene distribuita usando la logica in un file di progetto MSBuild personalizzato.

Per creare una definizione di compilazione per l'integrazione continua e la distribuzione

  1. In Visual Studio 2010, nella finestra Team Explorer espandere il nodo del progetto team, fare clic con il pulsante destro del mouse su Compilazioni e quindi scegliere Nuova definizione di compilazione.

    In Visual Studio 2010, nella finestra Team Explorer espandere il nodo del progetto team, fare clic con il pulsante destro del mouse su Compilazioni e quindi scegliere Nuova definizione di compilazione.

  2. Nella scheda Generale assegnare alla definizione di compilazione un nome (ad esempio DeployToTest) e una descrizione facoltativa.

  3. Nella scheda Trigger selezionare i criteri in cui si vuole attivare una nuova compilazione. Ad esempio, se si vuole compilare la soluzione e distribuirla nell'ambiente di test ogni volta che uno sviluppatore controlla il nuovo codice, selezionare Integrazione continua.

  4. Nella scheda Build Defaults (Compila impostazioni predefinite) digitare il percorso UNC (Universal Naming Convention) della cartella di rilascio , ad esempio \TFSBUILD\Drops.

    Nella scheda Build Defaults (Compila impostazioni predefinite) digitare il percorso UNC (Universal Naming Convention) della cartella di rilascio , ad esempio \TFSBUILD\Drops.

    Nota

    Questo percorso di rilascio archivia diverse compilazioni, a seconda dei criteri di conservazione configurati. Quando si vogliono pubblicare artefatti di distribuzione da una compilazione specifica in un ambiente di gestione temporanea o di produzione, è qui che vengono disponibili.

  5. Nell'elenco a discesa Compila file processo della scheda Processo lasciare selezionata l'opzione DefaultTemplate.xaml. Si tratta di uno dei modelli di processo di compilazione predefiniti che vengono aggiunti a tutti i nuovi progetti team.

  6. Nella tabella Parametri del processo di compilazione fare clic nella riga Items to Build (Elementi da compilare ) e quindi fare clic sul pulsante con i puntini di sospensione .

    Nella tabella Parametri del processo di compilazione fare clic nella riga Items to Build (Elementi da compilare) e quindi fare clic sul pulsante con i puntini di sospensione.

  7. Nella finestra di dialogo Elementi da compilare fare clic su Aggiungi.

  8. Passare al percorso del file della soluzione e quindi fare clic su OK.

    Passare al percorso del file della soluzione e quindi fare clic su OK.

  9. Nella finestra di dialogo Elementi da compilare fare clic su Aggiungi.

  10. Nell'elenco a discesa Elementi di tipo selezionare File di progetto MSBuild.

  11. Passare al percorso del file di progetto personalizzato con cui si controlla il processo di distribuzione, selezionare il file e quindi fare clic su OK.

    Passare al percorso del file di progetto personalizzato con cui si controlla il processo di distribuzione, selezionare il file e quindi fare clic su OK.

  12. La finestra di dialogo Elementi da compilare dovrebbe ora visualizzare due elementi. Fare clic su OK.

    La finestra di dialogo Elementi da compilare dovrebbe ora visualizzare due elementi. Fare clic su OK.

  13. Nella tabella Parametri del processo di compilazione della scheda Processo espandere la sezione Avanzate.

  14. Nella riga Argomenti MSBuild aggiungere gli argomenti della riga di comando di MSBuild necessari per la compilazione di uno degli elementi. Nello scenario della soluzione Contact Manager sono necessari questi argomenti:

    /p:DeployOnBuild=true;DeployTarget=Package;
       TargetEnvPropsFile=EnvConfig\Env-Dev.proj
    

    Nella riga Argomenti MSBuild aggiungere gli argomenti della riga di comando di MSBuild necessari per la compilazione di uno degli elementi.

  15. Esempio:

    1. Gli argomenti DeployOnBuild=true e DeployTarget=package sono necessari quando si compila la soluzione Contact Manager. Ciò indica a MSBuild di creare pacchetti di distribuzione Web dopo la compilazione di ogni progetto di applicazione Web, come descritto in Compilazione e creazione di pacchetti di progetti di applicazioni Web.
    2. L'argomento TargetEnvPropsFile è necessario quando si compila il file Publish.proj . Questa proprietà indica il percorso del file di configurazione specifico dell'ambiente, come descritto in Informazioni sul processo di compilazione.
  16. Nella scheda Criteri di conservazione configurare il numero di build di ogni tipo che si desidera conservare in base alle esigenze.

  17. Fare clic su Save (Salva).

Accodare una compilazione

A questo punto, è stata creata almeno una nuova definizione di compilazione. Il processo di compilazione definito verrà ora eseguito in base ai trigger specificati nella definizione di compilazione.

Se la definizione di compilazione è stata configurata per l'uso dell'integrazione continua, è possibile testare la definizione di compilazione in due modi:

  • Archiviare alcuni contenuti nel progetto team per attivare una compilazione automatica.
  • Accoda manualmente una compilazione.

Per accodare manualmente una compilazione

  1. Nella finestra Team Explorer fare clic con il pulsante destro del mouse sulla definizione di compilazione e quindi scegliere Accoda nuova compilazione.

    Nella finestra Team Explorer fare clic con il pulsante destro del mouse sulla definizione di compilazione e quindi scegliere Accoda nuova compilazione.

  2. Nella finestra di dialogo Compilazione coda esaminare le proprietà di compilazione e quindi fare clic su Coda.

    Nella finestra di dialogo Compilazione coda esaminare le proprietà di compilazione e quindi fare clic su Coda.

Per esaminare lo stato di avanzamento e il risultato di una compilazione, indipendentemente dal fatto che sia stato attivato manualmente o automaticamente, fare doppio clic sulla definizione di compilazione nella finestra Team Explorer . Verrà aperta una scheda Esplora compilazioni .

Per esaminare lo stato di avanzamento e il risultato di una compilazione, indipendentemente dal fatto che sia stato attivato manualmente o automaticamente, fare doppio clic sulla definizione di compilazione nella finestra Team Explorer.

Da qui è possibile risolvere i problemi relativi alle compilazioni non riuscite. Se si fa doppio clic su una singola compilazione, è possibile visualizzare le informazioni di riepilogo e fare clic su per visualizzare i file di log dettagliati.

Se si fa doppio clic su una singola compilazione, è possibile visualizzare le informazioni di riepilogo e fare clic su per visualizzare i file di log dettagliati.

È possibile usare queste informazioni per risolvere i problemi di compilazione non riusciti e risolvere eventuali problemi prima di tentare un'altra compilazione.

Nota

Le compilazioni che eseguono la logica di distribuzione potrebbero non riuscire finché non sono state concesse al server di compilazione le autorizzazioni necessarie nell'ambiente di destinazione. Per altre informazioni, vedere Configurazione delle autorizzazioni per la distribuzione di Compilazione team.

Monitorare il processo di compilazione

TFS offre un'ampia gamma di funzionalità che consentono di monitorare il processo di compilazione. Ad esempio, TFS può inviare un messaggio di posta elettronica o visualizzare avvisi nell'area di notifica della barra delle applicazioni al termine di una compilazione. Per altre informazioni, vedere Eseguire e monitorare build.

Conclusione

Questo argomento descrive come creare una definizione di compilazione in TFS. La definizione di compilazione è configurata per ci, quindi il processo di compilazione viene eseguito ogni volta che uno sviluppatore controlla il contenuto nel progetto team. La definizione di compilazione esegue un file di progetto MSBuild personalizzato per distribuire pacchetti Web e script di database in un ambiente server di destinazione.

Affinché una distribuzione automatizzata abbia esito positivo come parte di un processo di compilazione, sarà necessario concedere autorizzazioni appropriate all'account del servizio di compilazione nei server Web di destinazione e nel server di database di destinazione. L'argomento finale di questa esercitazione descrive come identificare e configurare le autorizzazioni necessarie per la distribuzione automatica da un server Di compilazione team.

Altre informazioni

Per altre informazioni sulla creazione di definizioni di compilazione, vedere Creare una definizione di compilazione di base e definire il processo di compilazione. Per altre indicazioni sulle compilazioni di accodamento, vedere Accodamento di una compilazione.