Condividi tramite


Procedura dettagliata: definire un flusso di lavoro personalizzato per la distribuzione di un database da Team Foundation Build

Prima di poter distribuire un progetto di database tramite Team Foundation Build, è necessario definire un flusso di lavoro personalizzato configurato per la distribuzione di un database. È necessario definire un flusso di lavoro personalizzato prima di poter utilizzare tale definizione di flusso di lavoro in una definizione di compilazione. Il flusso di lavoro viene definito tramite Windows Workflow 4.0. Questa procedura è molto semplice e non è necessario essere esperti per seguirla.

Per completare questa procedura dettagliata, è necessario eseguire le attività seguenti:

  1. Creare un modello di processo di compilazione

  2. Personalizzare il nuovo modello

  3. Archiviare il modello nel controllo della versione

Autorizzazioni necessarie

Per effettuare le seguenti procedure, è necessario che l'autorizzazione Modifica definizione di compilazione sia impostata su Consenti. Per ulteriori informazioni, vedere Autorizzazioni per Team Foundation Server.

Creare un modello di processo di compilazione

Il modo più semplice per creare un modello di processo di compilazione consiste nel copiare il modello predefinito. È possibile eseguire tale azione quando si crea una definizione di compilazione. In genere, è opportuno completare la definizione di compilazione. Dal momento che questa procedura dettagliata è incentrata sul modello di processo di compilazione personalizzato, in questa sede non verranno illustrati gli altri dettagli della definizione di una nuova compilazione. Per ulteriori informazioni su come definire una compilazione per il progetto di database, vedere Procedura: distribuire modifiche con Team Foundation Build.

Per creare un modello personalizzato

  1. In Team Explorer fare clic sul progetto team nel quale si desidera creare il flusso di lavoro personalizzato.

  2. Scegliere Nuova definizione di compilazione dal menu Compila.

  3. Fare clic sulla scheda Processo per visualizzare il diagramma seguente.

    Scheda Processo per una nuova definizione di compilazione

  4. Fare clic su Mostra dettagli e quindi su Nuovo.

    Verrà visualizzata la finestra di dialogo Nuovo modello di processo di compilazione.

  5. Fare clic su Copia un file XAML esistente.

  6. In Nuovo nome file specificare il nome del flusso di lavoro personalizzato e quindi fare clic su OK.

    Nota

    Se si desidera riutilizzare un file XAML esistente, è possibile fare clic su Seleziona un file XAML esistente e quindi specificare il percorso del file nel server di controllo della versione.

  7. Nella finestra della definizione di compilazione scegliere il collegamento ipertestuale contenente il nome del modello dal menu File processo di compilazione.

    La cartella che contiene il nuovo modello verrà visualizzata in Esplora controllo codice sorgente.

  8. Nel riquadro Cartelle fare clic con il pulsante destro del mouse sulla cartella contenente il nuovo modello e scegliere Leggi ultima versione.

  9. Fare clic con il pulsante destro del mouse sul nuovo modello e scegliere Estrai per la modifica.

    Verrà visualizzata la finestra di dialogo Estrai.

  10. Scegliere Estrai.

  11. Fare clic con il pulsante destro del mouse sul nuovo modello e scegliere Visualizza.

    Verrà visualizzata la finestra Progettazione flussi di lavoro di Windows di Visual Studio.

    Per ulteriori informazioni, vedere uno degli argomenti riportati di seguito:

Personalizzare il nuovo modello

È necessario aggiungere una sequenza al modello predefinito per aggiungere una fase di distribuzione alla fine del processo di compilazione. Personalizzare il file XAML mediante Progettazione flussi di lavoro di Windows. Anche se non si è mai utilizzata questa finestra di progettazione, i passaggi nella procedura riportata di seguito non sono particolarmente complessi. In breve, aggiungere una sequenza al flusso di lavoro nel quale si distribuirà il database tramite VSDBCMD.EXE in caso di riuscita della compilazione e se i test hanno avuto esito positivo.

Questa sequenza contiene un'attività If singola che consente di distribuire il database in caso di riuscita della compilazione e se i test hanno avuto esito positivo oppure non sono stati effettuati. Per rendere questa definizione più agevole da seguire, questa sezione è suddivisa in quattro procedure:

  1. Per aggiungere una sequenza di distribuzione di database al flusso di lavoro

  2. Per aggiungere un'attività If

  3. Per definire il blocco Then Deploy

  4. Per definire il blocco Else Skip Deployment

Per aggiungere una sequenza di distribuzione di database al flusso di lavoro

  1. In Progettazione flussi di lavoro di Windows fare clic su Comprimi tutto.

    Verrà visualizzato il diagramma seguente.

    Flusso di lavoro di distribuzione iniziale

  2. Aprire la casella degli strumenti, espandere la sezione Flusso di controllo, quindi trascinare l'attività Sequenza sopra la freccia nella finestra di progettazione che si trova in Modifiche di archiviazione gestita per compilazioni CheckInShelveset. Passando sulla freccia, verrà visualizzata una seconda freccia.

  3. Trascinare l'attività tra le due frecce, come illustrato nel diagramma seguente.

    Flusso di lavoro dopo l'eliminazione di una nuova sequenza

  4. Fare clic con il pulsante destro del mouse sulla sequenza aggiunta e scegliere Proprietà.

    Verrà visualizzata la finestra Proprietà.

  5. Impostare la proprietà DisplayName su Deploy Database.

  6. Nella sequenza Deploy Database, fare doppio clic su Fare doppio clic per visualizzare.

    Nella finestra di progettazione la sequenza Deploy Database viene ingrandita come illustrato nel diagramma seguente.

    Flusso di lavoro dopo l'espansione della sequenza di distribuzione

    Un canale di navigazione è disponibile all'inizio della finestra di progettazione, come illustrato nel diagramma seguente.

    Canale di navigazione in Progettazione flussi di lavoro di Windows

Successivamente, aggiungere un'attività If alla sequenza di distribuzione.

Per aggiungere un'attività If

  1. Aprire la casella degli strumenti, espandere la sezione Flusso di controllo e trascinare l'attività If su Rilasciare l'attività qui.

    Nella sequenza Deploy Database e nell'attività If viene visualizzata un'icona di avviso poiché non si è ancora configurata l'attività If, come illustrato nel diagramma seguente.

    Flusso di lavoro dopo l'aggiunta dell'attività If

  2. Fare clic con il pulsante destro del mouse sull'attività aggiunta e scegliere Proprietà.

    Verrà visualizzata la finestra Proprietà.

  3. Impostare la proprietà DisplayName dell'attività If su If Build and Tests Succeeded.

  4. Fare doppio clic su Fare doppio clic per visualizzare nell'attività If.

  5. In Condizione digitare la condizione seguente.

    BuildDetail.CompilationStatus = BuildPhaseStatus.Succeeded And (BuildDetail.TestStatus = BuildPhaseStatus.Succeeded Or BuildDetail.TestStatus = BuildPhaseStatus.Unknown)
    

    Questa condizione verifica se la compilazione è riuscita e se i test sono stati superati oppure se non è stato eseguito alcun test.

L'attività If Build and Tests Succeeded è analoga al diagramma seguente.

Flusso di lavoro dopo l'espansione dell'attività If

Aggiungere quindi un'attività Invoke Process alla parte Then dell'attività If.

Per definire il blocco Then Deploy

  1. Aprire la casella degli strumenti, trovare l'attività InvokeProcess nella sezione Attività Team Foundation Build e trascinarla su Rilasciare l'attività qui nella clausola Then.

    Nell'attività If Build and Tests Succeeded e nell'attività InvokeProcess viene visualizzata un'icona di avviso poiché non si è ancora configurata l'attività InvokeProcess.

  2. Fare doppio clic su Fare doppio clic per visualizzare nell'attività Invoke VSDBCMD.

    L'attività verrà visualizzata come segue.

    Flusso di lavoro durante la definizione della clausola Then

  3. Impostare le proprietà per l'attività InvokeProcess eseguendo le sottoattività seguenti:

    1. Fare clic con il pulsante destro del mouse sull'attività aggiunta e scegliere Proprietà.

      Verrà visualizzata la finestra Proprietà.

    2. Impostare la proprietà DisplayName dell'attività InvokeProcess su Invoke VSDBCMD.

    3. Impostare la proprietà Arguments su "/a:Deploy /dd+ /dsp:Sql /manifest:DatabaseProjectName.deploymanifest". È necessario sostituire DatabaseProjectName con il nome del progetto di database che si desidera distribuire.

    4. Impostare la proprietà FileName sul percorso di VSDBCMD.EXE nel server di compilazione. Ad esempio, è possibile specificare C:\Programmi\Microsoft Visual Studio 10.0\VSTSDB\Deploy\VSDBCMD.EXE se si è installato Visual Studio nel computer di compilazione o C:\Deploy\VSDBCMD.EXE se si è copiata solo la cartella Deploy nel computer di compilazione.

      Nota importanteImportante

      Per distribuire il database tramite VSDBCMD.EXE, il contenuto della cartella Deploy deve trovarsi nel computer di compilazione. Per ulteriori informazioni, vedere Procedura: preparare un database per la distribuzione da un prompt dei comandi tramite VSDBCMD.EXE.

    5. Impostare la proprietà WorkingDirectory su BuildDetail.DropLocation.

  4. Aprire la casella degli strumenti, trovare l'attività WriteBuildMessage nella sezione Attività Team Foundation Build e trascinarla su Rilasciare l'attività qui nella sezione Gestisci output standard.

    Nell'attività Invoke VSDBCMD e nell'attività WriteBuildMessage viene visualizzata un'icona di avviso poiché non si è ancora configurata l'attività WriteBuildMessage.

  5. Impostare le proprietà per l'attività WriteBuildMessage eseguendo le sottoattività seguenti:

    1. Fare clic con il pulsante destro del mouse sull'attività aggiunta e scegliere Proprietà.

      Verrà visualizzata la finestra Proprietà.

    2. Impostare la proprietà DisplayName dell'attività WriteBuildMessage su VSDBCMD Output.

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

    4. Impostare la proprietà Message su stdOutput.

  6. Aprire la casella degli strumenti, trovare l'attività WriteBuildError nella sezione Attività Team Foundation Build e trascinarla su Rilasciare l'attività qui nella sezione Gestisci output errore.

    Nell'attività Invoke VSDBCMD e nell'attività WriteBuildError viene visualizzata un'icona di avviso poiché non si è ancora configurata l'attività WriteBuildError.

  7. Impostare le proprietà per l'attività WriteBuildError eseguendo le sottoattività seguenti:

    1. Fare clic con il pulsante destro del mouse sull'attività aggiunta e scegliere Proprietà.

      Verrà visualizzata la finestra Proprietà.

    2. Impostare la proprietà DisplayName dell'attività WriteBuildError su VSDBCMD Error.

    3. Impostare la proprietà Message su errOutput.

    4. Nel canale nella parte superiore della finestra di progettazione, fare clic su If Build and Test Succeeded.

      In questo modo, si effettua lo zoom indietro di un livello nel flusso di lavoro.

A questo punto, il flusso di lavoro si presenta come illustrato nel diagramma seguente.

Flusso di lavoro dopo il completamento della clausola Then

A questo punto, definire i dettagli dell'attività Else.

Per definire il blocco Else Skip Deployment

  1. Aprire la casella degli strumenti, trovare l'attività WriteBuildWarning nella sezione Attività Team Foundation Build e trascinarla su Rilasciare l'attività qui nella clausola Else.

    Nell'attività If Build and Tests Succeeded e nell'attività WriteBuildWarning viene visualizzata un'icona di avviso poiché non si è ancora configurata l'attività WriteBuildWarning.

  2. Impostare la proprietà DisplayName dell'attività WriteBuildWarning su Deployment Skipped.

  3. Impostare la proprietà Message su "Database deployment was skipped".

    Le icone di avviso non vengono più visualizzate poiché sono state configurate le attività del flusso di lavoro aggiunte.

L'attività If sarà ora visualizzata come illustrato nel diagramma seguente.

Flusso di lavoro di distribuzione del database completo

È stato aggiornato il flusso di lavoro di compilazione per distribuire il progetto di database specificato. A questo punto, è necessario archiviare il modello nel controllo della versione per poterlo utilizzare nel processo di compilazione.

Archiviare il modello nel controllo della versione

Per poter utilizzare il flusso di lavoro nella definizione di compilazione, è necessario archiviarlo nel controllo della versione. È inoltre possibile sfruttare le funzionalità di controllo della versione, ad esempio i rami. È possibile creare rami del flusso di lavoro quando si creano i rami del progetto.

  1. Salvare il flusso di lavoro e chiudere le finestra di progettazione.

  2. In Esplora controllo codice sorgente fare clic con il pulsante destro del mouse sul nuovo modello, quindi scegliere Archivia modifiche in sospeso.

    Verrà visualizzata la finestra di dialogo Archivia.

  3. (Facoltativo) È possibile specificare commenti sull'archiviazione o informazioni aggiuntive sulla modifica. Per ulteriori informazioni, vedere i seguenti argomenti:

  4. Scegliere Archivia.

A questo punto, è possibile definire una compilazione che utilizza il flusso di lavoro personalizzato compilato in questa procedura dettagliata. Per ulteriori informazioni, vedere Procedura: distribuire modifiche con Team Foundation Build.

Passaggi successivi

È ora necessario testare il modello personalizzato. Per ulteriori informazioni, vedere Procedura: distribuire modifiche con Team Foundation Build.

Vedere anche

Attività

Procedura: preparare un database per la distribuzione da un prompt dei comandi tramite VSDBCMD.EXE

Procedura: distribuire modifiche in un database nuovo o esistente

Concetti

Cenni preliminari sui processi di compilazione e distribuzione di database

Cronologia delle modifiche

Data

Cronologia

Motivo

Luglio 2010

Questo argomento è stato aggiunto per illustrare la modalità di creazione di un flusso di lavoro personalizzato per distribuire un database tramite Team Foundation Build.

Miglioramento delle informazioni.