Verwenden und Entwickeln von benutzerdefinierten Buildprozessaktivitäten
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
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.
Fügen Sie der Projektmappe, die das Codeprojekt der Buildprozessvorlage enthält, ein neues C#- oder Visual Basic-Codeprojekt hinzu.
Fügen Sie dem neuen Codeprojekt die folgenden Verweise hinzu:
Wie füge ich dem Codeprojekt diese Verweise hinzu?
Speichern Sie das Codeprojekt.
Fügen Sie dem Projekt eine neue Aktivität hinzu.
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.
Erstellen Sie die Projektmappe in Visual Studio (Tastenkombination: STRG+UMSCHALT+B).
Wenn Sie fertig sind, sollte Ihre Projektmappe etwa folgendermaßen aussehen:
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).
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.
Hochladen und Aktivieren des benutzerdefinierten Buildprozesses in einem TFVC-Teamprojekt
Hochladen und Aktivieren des benutzerdefinierten Buildprozesses in einem Git-Teamprojekt
Hochladen des benutzerdefinierten Buildprozesses in ein TFVC-Teamprojekt
In einem TFVC-Teamprojekt können Sie Folgendes ausführen:
Vergewissern Sie sich, dass Sie die Projektmappe (Tastatur: STRG+B) erstellt haben.
Stellen Sie eine Verbindung (Tastatur: STRG+0, C) mit dem Teamprojekt her, in dem Sie die Buildprozessquelle speichern möchten.
Fügen Sie im Quellcodeverwaltungs-Explorer Elemente zu dem Ordner hinzu, der das Aktivitätscodeprojekt enthält.
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.
Beenden Sie den Vorgang zum Hinzufügen der Datei.
Checken Sie die Änderungen ein.
Hochladen des benutzerdefinierten Buildprozesses in ein Git-Teamprojekt
In einem Git-Teamprojekt können Sie Folgendes ausführen:
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.
Vergewissern Sie sich, dass Sie die Projektmappe (Tastatur: STRG+B) erstellt haben.
Stellen Sie eine Verbindung (Tastatur: STRG+0, C) mit dem Teamprojekt her, in dem Sie die Buildprozessquelle speichern möchten.
Öffnen Sie die Git-Eingabeaufforderung.
F: Ich kann die Eingabeaufforderung nicht öffnen. Wie gehe ich vor? A: Aktivieren Sie die Git-Eingabeaufforderung.
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
Führen Sie einen Commit für die Änderungen aus.
Synchronisieren Sie oder führen Sie einen Push für das Commit aus.
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.
Wählen Sie auf der Seite "Builds" (Tastatur: STRG+0, B) die Option Aktionen und dann Buildcontroller verwalten aus.
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.
Geben Sie den Pfad in der Versionskontrolle zu benutzerdefinierten Assemblys an.
Navigieren Sie zu einem Ordner, der dem Ordner übergeordnet ist, in den Sie in den oben ausgeführten Schritten den Buildprozess hochgeladen haben.
TFVC-Beispiel: $/FabrikamTFVC/BuildProcessTemplates/BuildProcessSource/Source/bin/Debug
Git-Beispiel: BuildProcessSource/Source/Bin/Debug
Das System konvertiert automatisch den von Ihnen eingegebenen Wert in einen vstfs-Pfad. Beispiel: vstfs:///Git/VersionedItem/FabrikamGit/BuildProcesses/master/BuildProcessSource/Source/Bin/Debug.
Erstellen oder ändern Sie eine Builddefinition, und wählen Sie die benutzerdefinierte Buildprozessvorlage aus, sofern Sie dies noch nicht getan haben.
Ausführen des Builds
Speichern Sie den Build in der Warteschlange. Das Ergebnis würde in etwa wie folgt aussehen:
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.
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:
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)