Exemplarische Vorgehensweise: Definieren eines benutzerdefinierten Workflow zum Bereitstellen einer Datenbank von Team Foundation Build

Bevor Sie mit Team Foundation Build ein Datenbankprojekt bereitstellen können, müssen Sie zuerst einen benutzerdefinierten Workflow definieren, der für die Bereitstellung einer Datenbank konfiguriert ist. Sie müssen einen benutzerdefinierten Workflow definieren, bevor Sie diese Workflowdefinition in einer Builddefinition verwenden können. Sie definieren den Workflow mit Windows Workflow 4.0. Dieser einfachen Prozedur können Sie auch folgen, wenn Sie kein Experte sind.

Zum Durchführen dieser exemplarischen Vorgehensweise müssen Sie folgende Aufgaben ausführen:

  1. Erstellen einer Buildprozessvorlage

  2. Anpassen der neuen Vorlage

  3. Einchecken der Vorlage in der Versionskontrolle

Erforderliche Berechtigungen

Zum Ausführen der folgenden Prozeduren muss für Sie die Berechtigung Builddefinition bearbeiten auf Zulassen festgelegt sein. Weitere Informationen finden Sie unter Team Foundation Server-Berechtigungen.

Erstellen einer Buildprozessvorlage

Eine Buildprozessvorlage erstellen Sie am einfachsten, indem Sie die Standardvorlage kopieren. Diese Aktion können Sie beim Erstellen einer Builddefinition ausführen. Normalerweise würden Sie die Builddefinition abschließen. Da der Schwerpunkt dieser exemplarischen Vorgehensweise auf der benutzerdefinierten Buildprozessvorlage liegt, werden hierin die weiteren Details beim Erstellen eines neuen Builds nicht behandelt. Weitere Informationen zum Definieren eines Build für Ihr Datenbankprojekt finden Sie unter Gewusst wie: Bereitstellen von Änderungen mit Team Foundation Build.

So erstellen Sie eine benutzerdefinierte Vorlage

  1. Klicken Sie in Team Explorer auf das Teamprojekt, in dem Sie den benutzerdefinierten Workflow erstellen möchten.

  2. Klicken Sie im Menü Erstellen auf Neue Builddefinition.

  3. Klicken Sie auf die Registerkarte Prozess, um das folgende Diagramm anzuzeigen.

    Registerkarte Prozess für neue Builddefinition

  4. Klicken Sie auf Details anzeigen und dann auf Neu.

    Das Dialogfeld Neue Buildprozessvorlage wird angezeigt.

  5. Klicken Sie auf Vorhandene XAML-Datei kopieren.

  6. Geben Sie unter Neuer Dateiname den Namen des benutzerdefinierten Workflows an, und klicken Sie dann auf OK.

    Tipp

    Wenn Sie eine vorhandene XAML-Datei wiederverwenden möchten, können Sie auf Vorhandene XAML-Datei auswählen klicken und dann den Pfad der Datei auf dem Versionskontrollserver angeben.

  7. Klicken Sie im Builddefinitionsfenster im Menü Buildprozessdatei auf den Link mit dem Namen der Vorlage.

    Der Ordner, der die neue Vorlage enthält, wird im Quellcodeverwaltungs-Explorer angezeigt.

  8. Klicken Sie im Bereich Ordner mit der rechten Maustaste auf den Ordner, der die neue Vorlage enthält, und klicken Sie dann auf Letzte Version abrufen.

  9. Klicken Sie mit der rechten Maustaste auf die neue Vorlage, und klicken Sie dann auf Auschecken zum Bearbeiten.

    Das Dialogfeld Auschecken wird angezeigt.

  10. Klicken Sie auf Auschecken.

  11. Klicken Sie mit der rechten Maustaste auf die neue Vorlage, und klicken Sie dann auf Anzeigen.

    Der Workflow-Designer von Visual Studio wird angezeigt.

    Weitere Informationen finden Sie in einem der folgenden Themen:

Anpassen der neuen Vorlage

Sie müssen der Standardvorlage eine Sequenz hinzufügen, um am Ende des Buildprozesses einen Bereitstellungsschritt hinzuzufügen. Die XAML-Datei passen Sie mit dem Windows Workflow Designer an. Auch wenn Sie diesen Designer vielleicht noch nie verwendet haben, sind die Schritte in der folgenden Prozedur nicht besonders komplex. Kurz gesagt, fügen Sie dem Workflow, in dem Sie die Datenbank mit VSDBCMD.EXE bereitstellen, eine Sequenz hinzu, wenn der Build erfolgreich war und bei den Tests keine Fehler aufgetreten sind.

Diese Sequenz enthält eine einzelne If-Aktivität, mit der die Datenbank bereitgestellt wird, wenn der Build erfolgreich war und die Tests bestanden oder aber keine Tests ausgeführt wurden. Um diese Definition verständlicher zu machen, ist dieser Abschnitt in vier Prozeduren unterteilt:

  1. So fügen Sie dem Workflow eine Sequenz für die Datenbankbereitstellung hinzu

  2. So fügen Sie die If-Aktivität hinzu

  3. So definieren Sie den Then-Block für die Bereitstellung

  4. So definieren Sie den Else-Block zum Überspringen der Bereitstellung

So fügen Sie dem Workflow eine Sequenz für die Datenbankbereitstellung hinzu

  1. Klicken Sie im Windows Workflow Designer auf Alle reduzieren.

    Das folgende Diagramm wird angezeigt.

    Ursprünglicher Bereitstellungsworkflow

  2. Öffnen Sie die Toolbox, erweitern Sie den Abschnitt Kontrollfluss, und ziehen Sie dann die Aktivität für Sequenz auf den Pfeil im Designer, der sich unter Abgegrenzte Änderungen für Builds vom Typ CheckInShelveset einchecken befindet. Wenn Sie den Mauszeiger über dem Pfeil ruhen lassen, wird ein zweiter Pfeil angezeigt.

  3. Legen Sie die Aktivität zwischen den beiden Pfeilen ab, wie im folgenden Diagramm dargestellt.

    Workflow nach dem Ablegen einer neuen Sequenz

  4. Klicken Sie mit der rechten Maustaste auf die hinzugefügte Sequenz, und klicken Sie auf Eigenschaften.

    Das Eigenschaftenfenster wird angezeigt.

  5. Legen Sie die DisplayName-Eigenschaft auf Datenbank bereitstellen fest.

  6. Doppelklicken Sie in der Sequenz Datenbank bereitstellen auf Zum Anzeigen doppelklicken.

    Die Ansicht der Sequenz Datenbank bereitstellen im Designer wird vergrößert, wie im folgenden Diagramm dargestellt.

    Workflow nach dem Erweitern der Bereitstellungssequenz

    Am oberen Rand des Designers wird ein Navigationschannel verfügbar, wie im folgenden Diagramm dargestellt.

    Navigationschannel in Windows Workflow Designer

Anschließend fügen Sie der Bereitstellungssequenz eine If-Aktivität hinzu.

So fügen Sie die If-Aktivität hinzu

  1. Öffnen Sie die Toolbox, erweitern Sie den Abschnitt Kontrollfluss, und ziehen Sie die If-Aktivität auf Aktivität hier ablegen.

    In der Sequenz Datenbank bereitstellen und in der If-Aktivität wird, wie im folgenden Diagramm dargestellt, jeweils ein Warnsymbol angezeigt, da Sie die If-Aktivität noch nicht konfiguriert haben.

    Workflow nach dem Hinzufügen der If-Aktivität

  2. Klicken Sie mit der rechten Maustaste auf die hinzugefügte Aktivität, und klicken Sie auf Eigenschaften.

    Das Eigenschaftenfenster wird angezeigt.

  3. Legen Sie die DisplayName-Eigenschaft der If-Aktivität auf Bei erfolgreichem Build und Test fest.

  4. Doppelklicken Sie in der If-Aktivität auf Zum Anzeigen doppelklicken.

  5. Geben Sie im Feld Bedingung die folgende Bedingung ein.

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

    Mit dieser Bedingung wird getestet, ob der Build erfolgreich war und ob die Tests erfolgreich waren oder aber keine ausgeführt wurden.

Die Aktivität Bei erfolgreichem Build und Test ähnelt der Darstellung im folgenden Diagramm.

Workflow nach dem Erweitern der If-Aktivität

Anschließend fügen Sie dem Then-Teil der If-Aktivität eine Aktivität vom Typ Prozess aufrufen hinzu.

So definieren Sie den Then-Block für die Bereitstellung

  1. Öffnen Sie die Toolbox, suchen Sie im Abschnitt Team Foundation-Build-Aktivitäten die Aktivität für InvokeProcess, und ziehen Sie sie auf Aktivität hier ablegen in der Then-Klausel.

    In der Aktivität unter Bei erfolgreichem Build und Test und in der InvokeProcess-Aktivität wird jeweils ein Warnsymbol angezeigt, da Sie die InvokeProcess-Aktivität noch nicht konfiguriert haben.

  2. Doppelklicken Sie in der Aktivität für VSDBCMD aufrufen auf Zum Anzeigen doppelklicken.

    Die Aktivität wird folgendermaßen angezeigt:

    Workflow zum Definieren der Then-Klausel

  3. Legen Sie die Eigenschaften für die InvokeProcess-Aktivität fest, indem Sie die folgenden Unteraufgaben ausgeführt haben:

    1. Klicken Sie mit der rechten Maustaste auf die hinzugefügte Aktivität, und klicken Sie auf Eigenschaften.

      Das Eigenschaftenfenster wird angezeigt.

    2. Legen Sie die DisplayName-Eigenschaft der InvokeProcess-Aktivität auf VSDBCMD aufrufen fest.

    3. Legen Sie die Arguments-Eigenschaft auf "/a:Deploy /dd+ /dsp:Sql /manifest:Datenbankprojektname.deploymanifest" fest. Sie müssen Datenbankprojektname durch den Namen des Datenbankprojekts ersetzen, das Sie bereitstellen möchten.

    4. Legen Sie die FileName-Eigenschaft auf den Pfad von VSDBCMD.EXE auf dem Buildserver fest. Beispielsweise können Sie C:\Programme\Microsoft Visual Studio 10.0\VSTSDB\Deploy\VSDBCMD.EXE angeben, wenn Sie auf dem Buildcomputer Visual Studio installiert haben, oder C:\Deploy\VSDBCMD.EXE, wenn Sie nur den Bereitstellungsordner auf den Buildcomputer kopiert haben.

      Wichtig

      Um die Datenbank mit VSDBCMD.EXE bereitstellen zu können, muss sich der Inhalt des Bereitstellungsordners auf dem Buildcomputer befinden. Weitere Informationen finden Sie unter Gewusst wie: Vorbereiten einer Datenbank für die Bereitstellung über eine Eingabeaufforderung mithilfe von VSDBCMD.EXE.

    5. Legen Sie die WorkingDirectory-Eigenschaft auf BuildDetail.DropLocation fest.

  4. Öffnen Sie die Toolbox, suchen Sie im Abschnitt Team Foundation-Build-Aktivitäten die WriteBuildMessage-Aktivität, und ziehen Sie diese im Abschnitt Standardausgabe bearbeiten auf Aktivität hier ablegen.

    In der Aktivität unter VSDBCMD aufrufen und in der WriteBuildMessage-Aktivität wird jeweils ein Warnsymbol angezeigt, da Sie die WriteBuildMessage-Aktivität noch nicht konfiguriert haben.

  5. Legen Sie die Eigenschaften für die WriteBuildMessage-Aktivität fest, indem Sie die folgenden Unteraufgaben ausgeführt haben:

    1. Klicken Sie mit der rechten Maustaste auf die hinzugefügte Aktivität, und klicken Sie auf Eigenschaften.

      Das Eigenschaftenfenster wird angezeigt.

    2. Legen Sie die DisplayName-Eigenschaft der WriteBuildMessage-Aktivität auf VSDBCMD-Ausgabe fest.

    3. Legen Sie die Importance-Eigenschaft auf Microsoft.TeamFoundation.Build.Client.BuildMessageImportance.High fest.

    4. Legen Sie die Message-Eigenschaft auf stdOutput fest.

  6. Öffnen Sie die Toolbox, suchen Sie im Abschnitt Team Foundation-Build-Aktivitäten die WriteBuildError-Aktivität, und ziehen Sie diese im Abschnitt Fehlerausgabe bearbeiten auf Aktivität hier ablegen.

    In der Aktivität unter VSDBCMD aufrufen und in der WriteBuildError-Aktivität wird jeweils ein Warnsymbol angezeigt, da Sie die WriteBuildError-Aktivität noch nicht konfiguriert haben.

  7. Legen Sie die Eigenschaften für die WriteBuildError-Aktivität fest, indem Sie die folgenden Unteraufgaben ausgeführt haben:

    1. Klicken Sie mit der rechten Maustaste auf die hinzugefügte Aktivität, und klicken Sie auf Eigenschaften.

      Das Eigenschaftenfenster wird angezeigt.

    2. Legen Sie die DisplayName-Eigenschaft der WriteBuildError-Aktivität auf VSDBCMD-Fehler fest.

    3. Legen Sie die Message-Eigenschaft auf errOutput fest.

    4. Klicken Sie im Channel am oberen Rand des Designers auf Bei erfolgreichem Build und Test.

      So verkleinern Sie die Ansicht um eine Ebene im Workflow.

Nun wird der Workflow wie im folgenden Diagramm dargestellt angezeigt.

Workflow nach dem Abschluss der Then-Klausel

Als Nächstes definieren Sie die Details der Else-Aktivität.

So definieren Sie den Else-Block zum Überspringen der Bereitstellung

  1. Öffnen Sie die Toolbox, suchen Sie im Abschnitt Team Foundation-Build-Aktivitäten die Aktivität für WriteBuildWarning, und ziehen Sie sie auf Aktivität hier ablegen in der Else-Klausel.

    In der Aktivität unter Bei erfolgreichem Build und Test und in der WriteBuildWarning-Aktivität wird jeweils ein Warnsymbol angezeigt, da Sie die WriteBuildWarning-Aktivität noch nicht konfiguriert haben.

  2. Legen Sie die DisplayName-Eigenschaft der WriteBuildWarning-Aktivität auf Bereitstellung übersprungen fest.

  3. Legen Sie die Message-Eigenschaft auf "Datenbankbereitstellung wurde übersprungen" fest.

    Die Warnsymbole werden nicht mehr angezeigt, da Sie die hinzugefügten Workflowaktivitäten konfiguriert haben.

Die If-Aktivität sollte jetzt wie im folgenden Diagramm dargestellt angezeigt werden.

Vollständiger Workflow für die Datenbankbereitstellung

Sie haben den Buildworkflow zum Bereitstellen des angegebenen Datenbankprojekts aktualisiert. Nun müssen Sie lediglich die Vorlage in der Versionskontrolle einchecken, sodass Sie sie im Buildprozess verwenden können.

Einchecken der Vorlage in der Versionskontrolle

Bevor Sie den Workflow in einer Builddefinition verwenden können, müssen Sie diesen in der Versionskontrolle einchecken. Sie können auch die Funktionen der Versionskontrolle nutzen, z. B. die Verzweigung. Sie können den Workflow verzweigen, wenn Sie das Projekt verzweigen.

  1. Speichern Sie den Workflow, und schließen Sie den Designer.

  2. Klicken Sie im Quellcodeverwaltungs-Explorer mit der rechten Maustaste auf die Vorlage, und klicken Sie dann auf Ausstehende Änderungen einchecken.

    Das Dialogfeld Einchecken wird angezeigt.

  3. (Optional) Sie können Eincheckkommentare oder zusätzliche Informationen zu der Änderung angeben. Weitere Informationen finden Sie unter den folgenden Themen:

  4. Klicken Sie auf Einchecken.

Nun können Sie einen Build definieren, für den der benutzerdefinierte Workflow verwendet wird, den Sie in dieser exemplarischen Vorgehensweise erstellt haben. Weitere Informationen finden Sie unter Gewusst wie: Bereitstellen von Änderungen mit Team Foundation Build.

Nächste Schritte

Sie sollten jetzt die benutzerdefinierte Vorlage testen. Weitere Informationen finden Sie unter Gewusst wie: Bereitstellen von Änderungen mit Team Foundation Build.

Siehe auch

Aufgaben

Gewusst wie: Vorbereiten einer Datenbank für die Bereitstellung über eine Eingabeaufforderung mithilfe von VSDBCMD.EXE

Gewusst wie: Bereitstellen von Änderungen in neuen oder vorhandenen Datenbanken

Konzepte

Übersicht über das Erstellen und Bereitstellen einer Datenbank

Änderungsprotokoll

Datum

Versionsgeschichte

Grund

Juli 2010

Dieses Thema hinzugefügt, um zu zeigen, wie ein benutzerdefinierter Workflow zum Bereitstellen einer Datenbank mit Team Foundation Build erstellt wird.

Informationsergänzung.