Gewusst wie: Anpassen von Buildnummern
Aktualisiert: November 2007
Sie können Team Foundation Build anpassen, indem Sie eigene benutzerdefinierte Aufgaben erstellen und sie während eines Builds ausführen. In diesem Thema wird erläutert, wie Sie eine Team Foundation Build-Builddefinition mit einer Aufgabe anpassen, die Buildnummern generiert.
Vorbereitungsmaßnahmen
Bevor Sie die Aufgabe erstellen, um Buildnummern anzupassen, benötigen Sie Folgendes:
Zugriff auf die Datei TFSBuild.proj der Builddefinition, die Sie anpassen möchten
Die Datei TFSBuild.proj kann mehreren Builddefinitionen zugeordnet werden. Um den Quellcodeverwaltungsspeicherort der Datei TFSBuild.proj zu ermitteln, wählen Sie in Team Explorer im Ordner Builds die Builddefinition aus, klicken mit der rechten Maustaste darauf und klicken anschließend auf Bearbeiten. Der Quellcodeverwaltungsspeicherort der Datei TFSBuild.proj wird im Dialogfeld Builddefinition im Bereich Builddefinition angezeigt. Standardmäßig befindet sich die Datei TFSBuild.proj im Ordner $/MyTeamProject/TeamBuildTypes/MyBuildName in Team Foundation-Versionskontrolle. EigenesTeamprojekt steht für den Namen Ihres Teamprojekts. Dies ist der Stammknoten Ihrer gesamten Teamprojektquellen. MyBuildName ist der Name, den Sie der ersten zur Datei TFSBuild.proj zugeordneten Builddefinition gegeben haben. Weitere Informationen zum Erstellen von Team Foundation Build-Buildtypen finden Sie unter Gewusst wie: Erstellen einer Builddefinition.
Wichtiger Hinweis: Beim Anpassen der Datei TFSBuild.proj wird jede zugeordnete Builddefinition angepasst.
Einen lokalen Arbeitsbereich, der die Teamprojektdateien und die Builddateien auf dem lokalen Computer enthält
Weitere Informationen finden Sie unter Gewusst wie: Erstellen eines zugeordneten Arbeitsbereichs und unter Gewusst wie: Abrufen der Quellcodeverwaltung für das Teamprojekt.
Erforderliche Berechtigungen
Damit Sie diese Aufgabe ausführen können, müssen die Berechtigungen Build verwalten und Arbeitsbereiche verwalten auf Zulassen festgelegt sein. Weiterhin müssen die Berechtigungen Einchecken und Auschecken auf Zulassen festgelegt sein. Weitere Informationen finden Sie unter Team Foundation Server-Berechtigungen.
Schreiben der Buildnummernaufgabe
Um die Aufgabe zu schreiben, können Sie entweder die ITask-Schnittstelle direkt implementieren oder die Klasse von einer Task-Hilfsklasse ableiten. ITask ist in der Assembly Microsoft.Build.Framework.dll definiert, und Task ist in der Assembly Microsoft.Build.Utilitites.dll definiert.
Um die von Team Foundation Build generierte Buildnummer anzupassen, müssen Sie die Aufgabe in das BuildNumberOverrideTarget-Ziel einfügen. Für BuildNumberOverrideTarget ist eine Ausgabeeigenschaft namens BuildNumber. erforderlich. Das Output-Attribut zeigt an, dass die Eigenschaft die Ausgabe Ihrer benutzerdefinierten Aufgabe ist. Weitere Informationen zu Team Foundation Build-Zielen finden Sie unter Benutzerdefinierte Team Foundation-Buildziele.
So schreiben Sie die benutzerdefinierte Aufgabe
Erstellen Sie eine Visual C#-Klassenbibliothek mit dem Namen MyTask, in der die benutzerdefinierte Aufgabe enthalten ist.
Weitere Informationen finden Sie unter Komponentenklassen.
Klicken Sie im Menü Projekt auf Verweis hinzufügen, und wählen Sie im Dialogfeld Verweis hinzufügen Microsoft.Build.Framework und Microsoft.Build.Utilities aus.
Fügen Sie in der Datei class.cs den folgenden Code ein.
Dieses Beispiel erbt von der Task-Hilfsklasse und verwendet die DateTime-Eigenschaften UtcNow und Ticks, um die Buildnummer zu generieren.
using System; using Microsoft.Build.Utilities; using Microsoft.Build.Framework; namespace BuildNumberGenerator { public class BuildNumberGenerator:Task { public override bool Execute() { m_buildNumber = DateTime.UtcNow.Ticks.ToString(); return true; } private string m_buildNumber; [Output] public string BuildNumber { get { return m_buildNumber; } } } }
Erstellen Sie die Klassenbibliothek, um die Datei MyTask.dll zu erstellen.
Kopieren Sie die erstellte DLL-Datei in den lokalen Arbeitsbereichsordner, in dem auch die Datei TFSBuild.proj der Builddefinition enthalten ist.
Wichtiger Hinweis: Sie müssen den Quellcodeverwaltungsspeicherort der Datei TFSBuild.proj Ihrem lokalen Arbeitsbereich zugeordnet haben, bevor diese Verzeichnisstruktur auf dem Clientcomputer angezeigt wird. Weitere Informationen finden Sie unter Gewusst wie: Abrufen der Quellcodeverwaltung für das Teamprojekt.
Wenn die Datei TFSBuild.proj im Standardordner in der Quellcodeverwaltung gespeichert wurde, befindet sich die lokale Kopie der Datei auf dem Clientcomputer in <root>:\Local Workspace\TeamBuildTypes\MyBuildName. Local Workspace ist der lokale Ordner, dem das Teamprojekt zugeordnet ist, MyTeamProject ist der Name des Teamprojekts, und MyBuildName ist der Name, den Sie der ersten der Datei TFSBuild.proj zugeordneten Builddefinition gegeben haben.
Hinzufügen der DLL-Datei zur Quellcodeverwaltung
Nachdem Sie die DLL-Datei erstellt haben, die die benutzerdefinierte Aufgabe enthält, müssen Sie diese zu Team Foundation-Versionskontrolle hinzufügen. Sie können die Befehle tf add und tf checkin verwenden, um die DLL-Datei am gleichen Ort, an dem sich die Datei TFSBuild.proj der Builddefinitíon befindet, hinzuzufügen und einzuchecken. Weitere Informationen finden Sie unter Befehl Add und unter Befehl Checkin.
So fügen Sie eine Assembly hinzu und checken sie ein
Klicken Sie auf Start, und zeigen Sie dann auf Alle Programme, Microsoft Visual Studio 9.0 und Visual Studio Tools, und klicken Sie dann auf Visual Studio 2008-Eingabeaufforderung. Öffnen Sie den lokalen Arbeitsbereich, den Sie dem Teamprojekt mit dem anzupassenden Buildtyp zugeordnet haben.
Geben Sie an der Eingabeaufforderung beispielsweise Folgendes ein.
> cd c:\MyTeamProject
Dabei steht MyTeamProject für den Namen Ihres Teamprojekts.
Navigieren Sie zum Speicherort der Datei TFSBuild.proj.
Geben Sie an der Eingabeaufforderung beispielsweise Folgendes ein.
c:\MyTeamProject>cd TeamBuildTypes\MyBuildName
Hierbei steht MyBuildName für den Namen der Builddefinition.
Geben Sie den folgenden Befehl ein, um die Datei zu Team Foundation-Versionskontrolle hinzuzufügen.
c:\MyTeamProject\TeamBuildTypes\MyBuildName> tf add MyTask.dll
Geben Sie den folgenden Befehl ein, um die Datei in Team Foundation-Versionskontrolle einzuchecken.
c:\MyTeamProject\TeamBuildTypes\MyBuildName> tf checkin MyTask.dll
Sie können auch den Team Explorer verwenden, um die DLL-Datei zu Team Foundation-Versionskontrolle hinzuzufügen. Weitere Informationen finden Sie unter Gewusst wie: Hinzufügen eines Projekts oder einer Projektmappe zur Versionskontrolle.
Registrieren der Aufgabe
Nachdem Sie die Aufgabe erstellt haben, müssen Sie diese registrieren, indem Sie sie in einem UsingTask-Element in der Datei TFSBuild.proj angeben. Das UsingTask-Element ordnet die Aufgabe der Assembly zu, die die Implementierung der Aufgabe enthält. Weitere Informationen finden Sie unter UsingTask-Element (MSBuild).
So registrieren Sie die Aufgabe durch Ändern der Datei TFSBuild.proj
Starten Sie Visual Studio.
Checken Sie die Datei TFSBuild.proj, die Sie ändern möchten, aus der Team Foundation-Versionskontrolle aus, und öffnen Sie sie im Visual Studio-XML-Editor.
Fügen Sie der Datei TFSBuild.proj das UsingTask-Element direkt nach der Importanweisung hinzu.
<UsingTask TaskName="BuildNumberGenerator.BuildNumberGenerator" AssemblyFile="MyTask.dll"/>
Um Ihre Aufgabe in das BuildNumberOverrideTarget-Ziel einzufügen, fügen Sie am Ende der Datei TFSBuild.proj folgenden XML-Code in den <Target></Target>-Tags hinzu.
</ItemGroup> <Target Name = "BuildNumberOverrideTarget" > <BuildNumberGenerator> <Output TaskParameter="BuildNumber" PropertyName="BuildNumber"/> </BuildNumberGenerator> </Target> </Project>
Klicken Sie auf Datei und auf Speichern, um die Änderungen zu speichern. Schließen Sie anschließend TFSBuild.proj.
Hinweis: Nachdem Sie diese Änderungen an der Datei TFSBuild.proj vorgenommen haben, werden Sie XML-Schemawarnungen erhalten. Sie können diese Warnungen gefahrlos ignorieren.
Checken Sie TFSBuild.proj wieder in die Quellcodeverwaltung ein.
Führen Sie nach dem Ändern der Datei TFSBuild.proj und dem Speichern der Änderungen in Team Foundation-Versionskontrolle die Builddefinition aus.
Weitere Informationen finden Sie unter Gewusst wie: Starten oder Hinzufügen einer Builddefinition zur Warteschlange.
Sie können die benutzerdefinierte Buildnummer im Build Explorer anzeigen. Weitere Informationen finden Sie unter Gewusst wie: Überwachen des Buildstatus.