Anpassen der Buildprozessvorlage

Wenn Ihr Buildprozess mehr Funktionen erfüllen muss als die Standardvorlage hat, können Sie die Buildprozessvorlage so anpassen, dass sie Ihre eigenen Windows Workflow Foundations (WWF)-Anweisungen befolgt. Ihre Anweisungen können .NET Framework-Code ausführen, der in CodeActivity-Objekten implementiert wird. Sie können Aktivitäten ausführen, die in Team Foundation Build (TFBuild) integriert sind, von Drittanbietern bereitgestellt oder gegebenenfalls von Ihnen erstellt werden.

Tipp

Wenn die benutzerdefinierten Buildprozessfunktionen in einer Windows-Batchdatei oder einem PowerShell-Skript codiert werden können, können Sie das Skript hochladen und als Teil des Buildprozesses ausführen.Dieser Ansatz kann schneller und einfacher sein als das Erstellen eines benutzerdefinierten Buildprozesses.Siehe Ausführen eines Skripts im Buildprozess.

  • Beginnen einer benutzerdefinierten Buildprozess-Projektmappe und erstellen einer Vorlage

  • Verwenden einer benutzerdefinierten Vorlage in der Builddefinition

  • Antworten auf häufige Fragen erhalten

Beginnen einer benutzerdefinierten Buildprozess-Projektmappe und erstellen einer Vorlage

Bevor Sie die Anweisungen implementieren, extrahieren Sie eine Kopie der Standardvorlage vom Team Foundation-Server und fügen Sie sie einem Visual Basic-Codeprojekt hinzu.

Wichtig

Arbeiten Sie in einem Git-SymbolGit-Teamprojekt?Beabsichtigen Sie, die Binärdateien der Buildprozessaktivität hochzuladen?Bedenken Sie in diesem Fall, dass durch das Speichern von Binärdateien (insbesondere bei vielen Änderungen an großen Dateien) die Größe des Git-Repositorys erheblich zunehmen kann.Es wird empfohlen, die benutzerdefinierten Buildprozessbinärdateien in einem Repository zu speichern, das von dem Code getrennt ist, aus dem Sie die App erstellen.Sie können entweder ein separates Teamprojekt für die Buildprozesse erstellen, oder Sie können ein zusätzliches Repository im vorhandenen Teamprojekt erstellen.

  1. Stellen Sie eine Verbindung (Tastatur: STRG+0, C) mit dem Teamprojekt her (und gegebenenfalls mit dem Git-Symbol Git-Repository), wenn Sie die Buildprozessquelle speichern möchten.

  2. Erstellen Sie ein neues Codeprojekt (Tastatur: STRG+UMSCHALT+N).

    Erstellen Sie insbesondere eine neue Projektmappe (zum Beispiel BuildProcessSource), die ein neues Visual Basic-Codeprojekt für die Workflowaktivitätsbibliothek (zum Beispiel Templates) enthält. Fügen Sie der Projektmappe ein neues Verzeichnis an einem verständlichen Speicherort unter der Versionskontrolle hinzu.

    TFVC-Symbol TFVC-Beispiel: C:\Benutzer\IhrName\Source\Workspaces\FabrikamTFVC\BuildProcessTemplates\

    Git-Symbol Git-Beispiel: C:\Benutzer\IhrName\Source\Repos\BuildProcesses\

    Codeprojekt erstellen, das die neue Vorlage enthält

    Warum benötige ich ein Codeprojekt zum Bearbeiten meiner Vorlage?

  3. Erstellen oder bearbeiten Sie eine Builddefinition auf der Seite "Builds" (Tastatur: STRG+0, B).

    Neue Builddefinition oder Builddefinition bearbeiten

  4. Laden Sie eine Kopie der Standardvorlage herunter. Speichern Sie die neue Vorlage in dem Ordner, der das zuvor in diesem Verfahren erstellte Codeprojekt enthält.

    TFVC-Symbol TFVC-Beispiel: C:\Benutzer\IhrName\Source\Workspaces\FabrikamTFVC\BuildProcessTemplates\BuildProcessSource\Templates

    Git-Symbol Git-Beispiel: C:\Benutzer\IhrName\Source\Repos\BuildProcesses\BuildProcessSource\Templates

    Links auf die Registerkarte "Prozess" für die Builddefinition herunterladen

    Dialogfeld Speichern unter

  5. Fügen Sie im Projektmappen-Explorer (Tastatur: STRG+ALT+L) dem Projekt Templates die Vorlage hinzu.

    Datei der Buildprozessvorlage zum Projekt hinzufügen

    Dialogfeld "Vorhandenes Element hinzufügen"

    Die Datei Activity1.xaml wird nicht benötigt, sodass Sie sie nach Bedarf löschen können.

  6. Legen Sie für die Eigenschaft "Buildaktion" der Vorlage den Wert "Inhalt" fest.

    Buildvorgang auf "Inhalt" setzen

  7. Fügen Sie dem Templates-Codeprojekt die folgenden Verweise hinzu:

    Wie füge ich dem Codeprojekt diese Verweise hinzu?

    Speichern Sie das Codeprojekt.

  8. Implementieren Sie die Meldung "Hello World!", sodass Sie sicher sein können, dass die Vorlage nach dem Einchecken und Ausführen funktioniert. Ziehen Sie hierzu eine WriteBuildMessage-Aktivität in den Workflow, und legen Sie ihre BuildMessageImportance-Eigenschaft auf Microsoft.TeamFoundation.Build.Client.BuildMessageImportance.High fest.

    WriteBuildMessage-Aktivität zu Vorlage hinzugefügt

  9. Speichern Sie die Vorlage, und laden Sie die neue Projektmappe hoch. Checken Sie ausstehende Änderungen in TFVC-Symbol TFVC (Tastatur: STRG+0, P) ein, oder führen Sie in Git-Symbol Git (Tastatur: STRG+0, G) ein Commit und Push für die Änderungen aus.

    Hochladen der Änderungen mit TFVC oder Git

Verwenden einer benutzerdefinierten Vorlage in der Builddefinition

Nachdem Sie eine benutzerdefinierte Buildprozessvorlage wie oben erläutert in das Teamprojekt hochgeladen haben, können Sie die Vorlage aus den Builddefinitionen verwenden.

  1. Erstellen oder bearbeiten Sie eine Builddefinition auf der Seite "Builds" (Tastatur: STRG+0, B).

  2. Wählen Sie auf der Registerkarte Prozess der Builddefinition Details anzeigen Details anzeigen und dann Neu aus.

    Builddefinition, Registerkarte "Prozess", Schaltfläche "Neu"

  3. Nach Auswahl von Neu:

    • TFVC: Geben Sie den Pfad zur Vorlage auf Team Foundation Server ein bzw. suchen Sie ihn.

    • Git: Geben Sie den Pfad zur Vorlage auf dem Entwicklungscomputer ein bzw. suchen Sie ihn.

  4. Nachdem Sie den Pfad zur Vorlage angegeben haben, können Sie ihn aus der Liste auswählen.

    CustomTemplate in Builddefinition ausgewählt

  5. Wenn Sie eine neue Builddefinition erstellen, wählen Sie die Projektmappe aus, die Sie erstellen, und geben Sie den Stagingort sowie andere erforderliche Optionen an. Siehe Erstellen oder Bearbeiten einer Builddefinition. Speichern Sie abschließend die Builddefinition.

  6. Fügen Sie auf der Seite "Builds" (Tastatur: STRG+0, B) den Build zur Warteschlange hinzu.

    Einen Build aus der Seite "Builds" in die Warteschlange stellen

  7. Nachdem der Build abgeschlossen wurde, zeigen Sie die Ergebnisse an, um zu überprüfen, ob der benutzerdefinierte Workflow erwartungsgemäß ausgeführt wurde.

    Nachricht "Hello World!" wird im Buildprotokoll angezeigt

Fragen und Antworten

F: Ich wurde vom System blockiert, da ich keine Berechtigung habe.Wie kann ich sie erhalten?

A: Berechtigungsreferenz für Team Foundation Server

F: Warum benötige ich ein Codeprojekt zum Bearbeiten meiner Vorlage?

A: Sie sollten aus folgenden Gründen die Vorlagen innerhalb eines Codeprojekts bearbeiten:

  • Es können Probleme auftreten, wenn Sie versuchen, eine Vorlage außerhalb des Kontexts eines Codeprojekts zu bearbeiten.

  • Es können Probleme auftreten, es sei denn, Sie entwickeln die Buildprozessaktivität in der gleichen Projektmappe wie die Buildprozessvorlagen. Wenn Sie so vorgehen und eine der Aktivitäten in der Prozessvorlage verwenden müssen, ist die Aktivität im Werkzeugkasten des Workflow-Designers verfügbar. Allerdings müssen Sie den Quellcode für die Aktivitäten in einem anderen Codeprojekt beibehalten, das nicht die Buildprozessvorlagen enthält. Siehe Verwenden und Entwickeln von benutzerdefinierten Buildprozessaktivitäten.

F: Wie füge ich die Verweise hinzu, die ich für die Arbeit mit TFBuild-Workflow benötige?

A: Verwenden Sie den Verweis-Manager, um Verweise hinzuzufügen.

Zeigen Sie die Codeprojektverweise an, und öffnen Sie den Verweis-Manager.

Verweise auf das benutzerdefinierte Vorlagencodeprojekt

Dialogfeld "Verweis-Manager"

Navigieren Sie zu C:\Programme (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ReferenceAssemblies\v2.0. Wählen Sie dann folgende Dateien aus, und fügen Sie sie hinzu:

Dialogfeld "Zu referenzierende Dateien auswählen"

Dialogfeld "Verweis-Manager"

F: Kann ich eine Buildprozessvorlage teamprojektübergreifend freigeben?

A: Ja. Sie können eine Vorlage unter mehr als einem Teamprojekt registrieren. Diese Funktion bedeutet, dass Sie einen Buildprozess in jedem Teamprojekt einer Teamprojektsammlung freigeben können, die Ihre Vorlage enthält.

F: Was geschieht mit den Builddefinitionen, die die Vorlage verwenden, wenn ich diese ändere?

A: Wenn Sie eine Vorlage ändern müssen, sollten Sie planen, alle Builddefinitionen zu überprüfen, die auf der Vorlage basieren. Korrigieren Sie diese, nachdem Sie die Änderungen an der Vorlage abgeschlossen haben. Wenn Sie dies nicht tun, schlagen die Builddefinitionen möglicherweise fehl oder weisen ein unerwartetes Verhalten auf.

F: Was geschieht, wenn ich die Buildprozessvorlage lösche?

A: Wenn Sie sich dafür entscheiden, eine Buildprozessvorlage zu löschen, sollten Sie zuerst nach allen auf der Vorlage basierenden Builddefinitionen suchen und diese löschen. Wenn Sie die Vorlage löschen, funktionieren alle verbleibenden Builddefinitionen, die auf der Vorlage basieren, nicht mehr.

F: Welche Ursachen führen zu Fehlern im benutzerdefinierten Buildprozess?

A: Einige häufige Ursachen für Fehler:

  • TF215097: Kann auftreten, wenn in der benutzerdefinierten Aktivität ein erforderliches Attribut fehlt oder Sie versuchen, die Vorlage im selben Codeprojekt zu bearbeiten, das die benutzerdefinierten Aktivitäten enthält.

  • MSBuild-Fehler XC1014: Kann auftreten, wenn Sie für die Buildaktion der Vorlage nicht den Wert "Inhalt" festlegen.

Wenn einer der oben aufgeführten Fehler auftritt, vergewissern Sie sich, dass Sie keinen der Schritte in den oben genannten Prozeduren ausgelassen haben.

Das folgende Thema könnte ebenfalls hilfreich sein: Diagnose von Problemen im Build.

F: Was ist die Windows Workflow Foundation?Wie kann ich sie verwenden?

A: Windows Workflow Foundation.

F: Wie rufe ich Umgebungsvariablendaten ab?

A: Verwenden Sie Umgebungsdaten aus einem benutzerdefinierten Buildprozess.

F: Wo erhalte ich mehr Informationen zu den integrierten Aktivitäten?

A: Team Foundation Build-Aktivitäten

Wie gehe ich vor, wenn die integrierten Aktivitäten nicht meine Anforderungen erfüllen?

A: Entwickeln Sie Ihre eigene benutzerdefinierte Buildprozessaktivität.

F: Wo kann ich Vorlagen, Workflowaktivitäten und Skripts abrufen?

A: Community TFS Build Extensions (Community TFS-Builderweiterungen) (in englischer Sprache)

F: Wo kann ich mehr zur Entwicklung von benutzerdefinierten Buildprozessen erfahren?

A: Curated answer: Customize your Team Foundation Build process (Kuratierte Antwort: Anpassen des Team Foundation-Buildprozesses) (in englischer Sprache)