Verwenden und Entwickeln von benutzerdefinierten Buildprozessaktivitäten

"Hello World" über eine C Sharp-Aktivität

Nachdem Sie eine benutzerdefinierte Buildprozessvorlage erstellt haben, können Sie eine eigene Geschäftslogik mithilfe der Windows Workflow-Anweisungen und der integrierten Team Foundation Build (TFBuild)-Aktivitäten implementieren. Wenn diese Tools nicht ausreichen, können Sie die Aktivitäten von Drittanbietern verwenden oder gegebenenfalls Ihren eigenen .NET Framework-Code in einer CodeActivity-Aktivität implementieren.

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.

  • Erstellen einer benutzerdefinierten Buildprozessaktivität

  • Bearbeiten der Buildprozessvorlage

  • Hochladen des benutzerdefinierten Buildprozesses

    • TFVC-Symbol Hochladen und Aktivieren des benutzerdefinierten Buildprozesses in einem TFVC-Teamprojekt

    • Git-Symbol Hochladen und Aktivieren des benutzerdefinierten Buildprozesses in einem Git-Teamprojekt

  • Aktivieren des benutzerdefinierten Buildprozesses

  • Ausführen des Builds

  • Fragen und Antworten

"Hello World" in der Buildzusammenfassung

Erstellen einer benutzerdefinierten Buildprozessaktivität

Wichtig

Bevor Sie beginnen, rufen Sie eine Kopie der Vorlage ab und legen Sie sie in einem Codeprojekt ab.Sofern Sie dies nicht bereits getan haben, finden Sie hier Anweisungen dazu.

Sie sollten die Buildprozessaktivität in der gleichen Projektmappe wie die Buildprozessvorlagen entwickeln.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.

  1. Fügen Sie der Projektmappe, die das Codeprojekt der Buildprozessvorlage enthält, ein neues C#- oder Visual Basic-Codeprojekt hinzu.

    Neues Projekt für BuildProcessSource-Projektmappe

    Neues Projekt

  2. Fügen Sie dem neuen Codeprojekt die folgenden Verweise hinzu:

    Wie füge ich dem Codeprojekt diese Verweise hinzu?

    Speichern Sie das Codeprojekt.

  3. Fügen Sie dem Projekt eine neue Aktivität hinzu.

    Neues Element für Quellcodeprojekt

    Neues Element hinzufügen

  4. Implementieren Sie die CodeActivity, beispielsweise Hello.cs:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Activities;
    using Microsoft.TeamFoundation.Build.Workflow.Activities;
    using Microsoft.TeamFoundation.Build.Client;
    using Microsoft.TeamFoundation.Build.Workflow.Tracking;
    
    namespace BuildProcessSource
    {
        // enable the build process template to load the activity
        [BuildActivity(HostEnvironmentOption.All)]
        // keep the internal activity operations from appearing in the log
        [ActivityTracking(ActivityTrackingOption.ActivityOnly)]
        public sealed class Hello : CodeActivity
        {
            // Define an activity input argument of type string
            public InArgument<string> SayHelloTo { get; set; }
    
            // If your activity returns a value, derive from CodeActivity<TResult>
            // and return the value from the Execute method.
            protected override void Execute(CodeActivityContext context)
            {
                // Obtain the runtime value of the Text input argument
                string text = context.GetValue(this.SayHelloTo);
    
                // Add our default value if we did not get one
                if (text == null || text == "")
                {
                    text = "World";
                }
    
                // Write the message to the log
                context.TrackBuildWarning("Hello " + text, BuildMessageImportance.High);
            }
        }
    }
    

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

  5. Erstellen Sie die Projektmappe in Visual Studio (Tastenkombination: STRG+UMSCHALT+B).

Wenn Sie fertig sind, sollte Ihre Projektmappe etwa folgendermaßen aussehen:

Beispiel einer Projektmappe für einen benutzerdefinierten Buildprozess

Bearbeiten der Buildprozessvorlage

Bearbeiten Sie in der Projektmappe die Buildprozessvorlage, indem Sie Aktivitäten hineinziehen. Sobald die Aktivität in die Vorlage eingefügt wurde, legen Sie die Eigenschaften fest (Tastatur: F4).

Eine Buildprozessvorlage wird von einer Lösung aus bearbeitet

Speichern Sie abschließend die Vorlage.

Hochladen des benutzerdefinierten Buildprozesses

Bevor Sie einen Build definieren können, in dem die benutzerdefinierte Buildprozessvorlage und die benutzerdefinierte Aktivität verwendet werden, müssen Sie sie hochladen und aktivieren.

  • TFVC-Symbol Hochladen und Aktivieren des benutzerdefinierten Buildprozesses in einem TFVC-Teamprojekt

  • Git-Symbol Hochladen und Aktivieren des benutzerdefinierten Buildprozesses in einem Git-Teamprojekt

Hochladen des benutzerdefinierten Buildprozesses in ein TFVC-Teamprojekt

In einem TFVC-Symbol TFVC-Teamprojekt können Sie Folgendes ausführen:

  1. Vergewissern Sie sich, dass Sie die Projektmappe (Tastatur: STRG+B) erstellt haben.

  2. Stellen Sie eine Verbindung (Tastatur: STRG+0, C) mit dem Teamprojekt her, in dem Sie die Buildprozessquelle speichern möchten.

  3. Fügen Sie im Quellcodeverwaltungs-Explorer Elemente zu dem Ordner hinzu, der das Aktivitätscodeprojekt enthält.

    Quellcodeverwaltungs-Explorer

  4. Navigieren Sie zum Ordner mit der DLL-Datei, und wählen Sie ihn aus. Zum Beispiel C:\Benutzer\IhrName\Source\Workspaces\FabrikamTFVC\BuildProcessTemplates\BuildProcessSource\Source\bin\Debug.

    Buildprozess-Binärdatei zu TFVC-Versionskontrolle hinzufügen

  5. Beenden Sie den Vorgang zum Hinzufügen der Datei.

    Buildprozess-Binärdatei zu TFVC-Versionskontrolle hinzufügen

  6. Checken Sie die Änderungen ein.

    Ausstehende Änderungen

Hochladen des benutzerdefinierten Buildprozesses in ein Git-Teamprojekt

In einem Git-Symbol Git-Teamprojekt können Sie Folgendes ausführen:

  1. Wichtig:

    • Bedenken Sie, 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 diesen Zweck erstellen, oder Sie können ein zusätzliches Repository im vorhandenen Teamprojekt erstellen.

    • Sie müssen die Binärdateien in einem Unterordner im Git-Repository speichern. Wenn Sie versuchen, Binärdateien im Stammordner zu verwenden, werden Sie möglicherweise durch die Fehlermeldung, dass die git-Teilstruktur nicht gefunden wird, daran gehindert.

  2. Vergewissern Sie sich, dass Sie die Projektmappe (Tastatur: STRG+B) erstellt haben.

  3. Stellen Sie eine Verbindung (Tastatur: STRG+0, C) mit dem Teamprojekt her, in dem Sie die Buildprozessquelle speichern möchten.

  4. Öffnen Sie die Git-Eingabeaufforderung.

    Eingabeaufforderung von der Seite "Änderungen" aus öffnen

    F: Ich kann die Eingabeaufforderung nicht öffnen. Wie gehe ich vor? A: Aktivieren Sie die Git-Eingabeaufforderung.

  5. Verwenden Sie die Git-Eingabeaufforderung zum Hinzufügen der DLL-Datei. Beispiel:

    cd c:\users\YourName\source\repos\BuildProcesses\BuildProcessSource\Source\bin\Debug
    
    git add Source.dll -f
    
  6. Führen Sie einen Commit für die Änderungen aus.

    Schaltfläche "Commit" auf der Seite "Änderungen"

  7. Synchronisieren Sie oder führen Sie einen Push für das Commit aus.

    Synchronisierungslink auf der Seite "Änderungen"

    Schaltfläche "Synchronisierung" und Link "Push" auf der Seite "Unsynchronisierte Commits"

Aktivieren des benutzerdefinierten Buildprozesses

Bevor Sie Ihren benutzerdefinierten Buildprozess ausführen können, müssen Sie den Buildcontroller auf die Binärdateien verweisen, die Sie in TFS hochgeladen haben, und die Buildprozessvorlage in der Builddefinition auswählen.

  1. Wählen Sie auf der Seite "Builds" (Tastatur: STRG+0, B) die Option Aktionen und dann Buildcontroller verwalten aus.

  2. Markieren Sie im Dialogfeld "Buildcontroller verwalten" den Controller, den Sie zum Ausführen des Buildprozesses verwenden möchten, und wählen Sie dann Eigenschaften aus.

    Dialogfeld "Buildcontroller verwalten"

  3. Geben Sie den Pfad in der Versionskontrolle zu benutzerdefinierten Assemblys an.

    Dialogfeld "Eigenschaften von Buildcontroller"

    VisualStudioEllipsesButton-Bildschirmabbildung Navigieren Sie zu einem Ordner, der dem Ordner übergeordnet ist, in den Sie in den oben ausgeführten Schritten den Buildprozess hochgeladen haben.

    • TFVC-Symbol TFVC-Beispiel: $/FabrikamTFVC/BuildProcessTemplates/BuildProcessSource/Source/bin/Debug

    • Git-Symbol Git-Beispiel: BuildProcessSource/Source/Bin/Debug

      Dialogfeld "Durchsuchen" mit Git-Werten

      Das System konvertiert automatisch den von Ihnen eingegebenen Wert in einen vstfs-Pfad. Beispiel: vstfs:///Git/VersionedItem/FabrikamGit/BuildProcesses/master/BuildProcessSource/Source/Bin/Debug.

      Pfad in der Versionskontrolle zu benutzerdefinierten Assemblys

  4. Erstellen oder ändern Sie eine Builddefinition, und wählen Sie die benutzerdefinierte Buildprozessvorlage aus, sofern Sie dies noch nicht getan haben.

    Builddefinition mit benutzerdefinierter Prozessvorlage

Ausführen des Builds

Speichern Sie den Build in der Warteschlange. Das Ergebnis würde in etwa wie folgt aussehen:

"Hello World" in einer Buildzusammenfassung

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: 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.

Kontextmenü für Referenzen

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: Welche Ursachen führen zu Fehlern im benutzerdefinierten Buildprozess?

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

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

A: Windows Workflow Foundation.

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

A: Team Foundation Build-Aktivitäten

F: Wo kann ich Buildprozessvorlagen, 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)