Benutzerdefinierte Team Foundation-Buildziele
Aktualisiert: November 2007
MSBuild-Ziele definieren, wie ein MSBuild-Projekt erstellt wird. In der Datei Microsoft.TeamFoundation.Build.targets werden die Zielhierarchie sowie ein Satz von vordefinierten MSBuild-Aufgaben und -Zielen für Team Foundation Build festgelegt, die für alle Team Foundation Build-Typen verwendet werden. Builddefinitionen enthalten eine Projektdatei mit dem Namen TfsBuild.proj. Die Projektdatei kann einer einzelnen oder mehreren Builddefinitionen zugeordnet werden. TfsBuild.proj importiert die Datei Microsoft.TeamFoundation.Build.targets und enthält Werte für verschiedene Eigenschaften und Elementgruppen. Sie können die Datei TfsBuild.proj anpassen, um in der Hierarchie einige der Erweiterungspunktziele zu überschreiben. Die TARGETS-Datei befindet sich in <root>:\Programme\MSBuild\Microsoft\VisualStudio\TeamBuild auf dem Build-Agent.
Wichtiger Hinweis: |
---|
Nehmen Sie an der Datei Microsoft.TeamFoundation.Build.targets keine Änderungen vor. |
Weitere Informationen zu MSBuild-Zielen finden Sie unter MSBuild-Ziele.
Ziele, die mit Aufgaben angepasst werden können
Aufgaben sind in Zielen enthalten. Aufgaben stellen den Code bereit, der während des Buildprozesses ausgeführt wird. In der folgenden Tabelle werden alle Team Foundation Build-Ziele aufgelistet, die für die Erweiterbarkeit festgelegt sind. Fügen Sie Ihre Aufgaben in eines dieser Ziele ein, je nachdem, wann Ihre benutzerdefinierten Aufgaben während des Buildprozesses ausgeführt werden sollen.
Hinweis: |
---|
Sie sollten keine anderen Ziele überschreiben. |
Zielname |
Beschreibung |
---|---|
BeforeEndToEndIteration |
Fügen Sie die Aufgabe in dieses Ziel ein, um ganz am Anfang des Buildprozesses benutzerdefinierte Aufgaben auszuführen. |
AfterEndToEndIteration |
Fügen Sie die Aufgabe in dieses Ziel ein, um am Ende des Buildprozesses benutzerdefinierte Aufgaben auszuführen. |
BeforeInitializeWorkspace |
Fügen Sie Ihre Aufgabe in dieses Ziel ein, um benutzerdefinierte Aufgaben vor der Initialisierung des Arbeitsbereichs auszuführen. |
AfterInitializeWorkspace |
Fügen Sie Ihre Aufgabe in dieses Ziel ein, um benutzerdefinierte Aufgaben nach der Initialisierung des Arbeitsbereichs auszuführen. |
BuildNumberOverrideTarget |
Fügen Sie die Aufgabe in dieses Ziel ein, um die Eigenschaften Buildnummer oder Ablageort anzupassen. Von der Aufgabe, die Sie schreiben, muss eine Ausgabeeigenschaft mit dem Namen BuildNumber erstellt werden. |
BeforeClean |
Wird vor dem Bereinigungsversuch aufgerufen. Fügen Sie die Aufgabe in dieses Ziel ein, um benutzerdefinierte Aufgaben vor dem Bereinigen auszuführen. |
AfterClean |
Wird nach Abschluss der Bereinigung aufgerufen. Fügen Sie die Aufgabe in dieses Ziel ein, um benutzerdefinierte Ziele nach dem Bereinigen auszuführen. |
BeforeGet |
Wird aufgerufen, bevor Quellen von der Quellcodeverwaltung abgerufen werden. Fügen Sie Ihre Aufgabe in dieses Ziel ein, um benutzerdefinierte Aufgaben vor dem Abrufen von Quellen auszuführen. |
AfterGet |
Wird aufgerufen, nachdem Quellen abgerufen wurden. Fügen Sie Ihre Aufgabe in dieses Ziel ein, um benutzerdefinierte Aufgaben nach dem Abrufen von Quellen auszuführen. |
BeforeLabel |
Wird aufgerufen, bevor die Quellen bezeichnet werden. Fügen Sie Ihre Aufgabe in dieses Ziel ein, um benutzerdefinierte Aufgaben vor dem Label-Ziel auszuführen. |
AfterLabel |
Wird nach Abschluss der Bezeichnung aufgerufen. Fügen Sie Ihre Aufgabe in dieses Ziel ein, um benutzerdefinierte Aufgaben nach dem Label-Ziel auszuführen. |
BeforeCompile |
Wird vor dem Start der Kompilierung aufgerufen. Fügen Sie Ihre Aufgabe in dieses Ziel ein, um benutzerdefinierte Aufgaben vor der Kompilierung von Codedateien auszuführen. |
BeforeCompileConfiguration |
Fügen Sie die Aufgabe in dieses Ziel ein, um vor der Kompilierung einer einzelnen Konfiguration benutzerdefinierte Aufgaben auszuführen. |
BeforeCompileSolution |
Fügen Sie die Aufgabe in dieses Ziel ein, um vor der Kompilierung einer einzelnen Projektmappe benutzerdefinierte Aufgaben auszuführen. |
AfterCompileSolution |
Fügen Sie die Aufgabe in dieses Ziel ein, um nach der Kompilierung einer einzelnen Projektmappe benutzerdefinierte Aufgaben auszuführen. |
AfterCompileConfiguration |
Fügen Sie die Aufgabe in dieses Ziel ein, um nach der Kompilierung einer einzelnen Konfiguration benutzerdefinierte Aufgaben auszuführen. |
AfterCompile |
Wird nach Abschluss der Kompilierung aufgerufen. Fügen Sie Ihre Aufgabe in dieses Ziel ein, um benutzerdefinierte Aufgaben nach der Kompilierung von Codedateien auszuführen. Ein Beispiel finden Sie unter Exemplarische Vorgehensweise: Konfigurieren von Team Foundation Build zum Erstellen eines Visual Studio-Setup-Projekts. |
BeforeGetChangesetsAndUpdateWorkItems |
Fügen Sie die Aufgabe in dieses Ziel ein, um benutzerdefinierte Aufgaben auszuführen, bevor Changesets zugeordnet und Arbeitsaufgaben aktualisiert werden. |
AfterGetChangesetsAndUpdateWorkItems |
Fügen Sie die Aufgabe in dieses Ziel ein, um benutzerdefinierte Aufgaben auszuführen, nachdem Changesets zugeordnet und Arbeitsaufgaben aktualisiert wurden. |
BeforeTest |
Wird vor der Ausführung von Tests aufgerufen. Fügen Sie Ihre Aufgabe in dieses Ziel ein, um benutzerdefinierte Aufgaben vor dem Test-Ziel auszuführen. |
BeforeTestConfiguration |
Fügen Sie die Aufgabe in dieses Ziel ein, um vor dem Testen einer einzelnen Konfiguration benutzerdefinierte Aufgaben auszuführen. |
AfterTestConfiguration |
Fügen Sie die Aufgabe in dieses Ziel ein, um nach dem Testen einer einzelnen Konfiguration benutzerdefinierte Aufgaben auszuführen. |
AfterTest |
Wird nach Abschluss der Tests aufgerufen. Fügen Sie Ihre Aufgabe in dieses Ziel ein, um benutzerdefinierte Aufgaben nach dem Test-Ziel auszuführen. |
BeforeDropBuild |
Wird vor dem Speichern der erstellten Binärdateien, der Buildprotokolldateien und der Testergebnisse im Buildablageverzeichnis auf dem Releaseserver aufgerufen. Fügen Sie Ihre Aufgabe in dieses Ziel ein, um benutzerdefinierte Aufgaben auszuführen, bevor die erstellten Dateien im Ablageverzeichnis gespeichert werden. |
AfterDropBuild |
Wird nach dem Speichern der erstellten Binärdateien, der Buildprotokolldateien und der Testergebnisse auf dem Releaseserver aufgerufen. Fügen Sie Ihre Aufgabe in dieses Ziel ein, um benutzerdefinierte Aufgaben auszuführen, nachdem die erstellten Dateien im Ablageverzeichnis gespeichert wurden. |
BeforeCreateWorkItem |
Fügen Sie Ihre Aufgabe in dieses Ziel ein, um benutzerdefinierte Aufgaben vor der Erstellung von Arbeitsaufgaben auszuführen. |
AfterCreateWorkItem |
Fügen Sie Ihre Aufgabe in dieses Ziel ein, um benutzerdefinierte Aufgaben nach der Erstellung von Arbeitsaufgaben auszuführen. |
BeforeOnBuildBreak |
Wird aufgerufen, bevor als Ergebnis einer Buildunterbrechung eine Arbeitsaufgabe erstellt wird. Fügen Sie Ihre Aufgabe in dieses Ziel ein, um benutzerdefinierte Aufgaben vor dem BuildBreak-Ziel auszuführen. |
AfterOnBuildBreak |
Wird aufgerufen, nachdem als Ergebnis einer Buildunterbrechung eine Arbeitsaufgabe erstellt worden ist. Fügen Sie Ihre Aufgabe in dieses Ziel ein, um benutzerdefinierte Aufgaben nach dem BuildBreak-Ziel auszuführen. |
GenerateDocumentation |
Dies ist ein leeres Ziel. Fügen Sie die Aufgabe in dieses Ziel ein, um während des Buildprozesses automatisch die Dokumentation zu generieren. |
Überschreiben von Zielen zum Ausführen benutzerdefinierter Aufgaben
Der Aufgabencode, den Sie schreiben, muss einem Ziel zugeordnet werden. Stellen Sie außerdem sicher, dass die erstellten Binärdateien auf dem Buildcomputer verfügbar sind. Geben Sie dazu entweder den Quellcodeverwaltungspfad in der Datei TfsBuild.proj an, oder stellen Sie die Binärdateien auf dem Buildcomputer selbst zur Verfügung. Zusätzlich müssen Sie die benutzerdefinierte Aufgabe in der Datei TfsBuild.proj registrieren, indem Sie sie mit dem MSBuild-Element UsingTask deklarieren. Weitere Informationen finden Sie unter UsingTask-Element (MSBuild). Stellen Sie im letzten Schritt die DLL-Datei, die die benutzerdefinierte Aufgabe enthält, auf dem Buildcomputer bereit.
Wichtiger Hinweis: |
---|
Jede Builddefinition, die der von Ihnen angepassten Datei TfsBuild.proj zugeordnet ist, ist von der Änderung betroffen. |
Ein Beispiel für eine End-to-End-Implementierung einer benutzerdefinierten Aufgabe finden Sie unter Exemplarische Vorgehensweise: Anpassen von Team Foundation Build mithilfe einer benutzerdefinierten Aufgabe.
Reihenfolge der Zielausführung
Die Reihenfolge der Ausführung der Ziele hängt vom Wert der CleanCompilationOutputOnly-Eigenschaft ab. Wenn CleanCompilationOutputOnlytrue ist, werden die bereinigten Ziele (BeforeClean, CoreClean und AfterClean) nach dem get-Ziel und dem label-Ziel (BeforeGet, CoreGet, AfterGet, BeforeLabel, CoreLabel und AfterLabel) ausgeführt. Wenn die CleanCompilationOutputOnly-Eigenschaft false ist, werden die bereinigten Ziele vor den get- und label-Zielen ausgeführt. Wenn CleanCompilationOutputOnlytrue ist, werden nur die Zwischenassemblys während der Ausführung des CoreClean-Ziels aus dem Quellverzeichnis entfernt. Wenn diese Eigenschaft auf false festgelegt ist, wird während der CoreClean-Zielausführung das gesamte Quellverzeichnis gelöscht.
Die folgende Tabelle zeigt die geordnete Liste der Ziele, die abhängig vom Wert CleanCompilationOutputOnlytrue oder false ausgeführt werden. Die Ziele, die Sie überschreiben können, sind entsprechend gekennzeichnet.
CleanCompilationOutputOnly = true |
CleanCompilationOutputOnly = false |
---|---|
|
|
Die folgende Liste enthält die Ziele, die ausgeführt werden, wenn während der Ausführung des CoreCompile-Ziels ein Fehler auftritt. Die Ziele, die Sie überschreiben können, sind entsprechend gekennzeichnet.
SetBuildBreakProperties
BeforeOnBuildBreak (Überschreiben möglich)
GetChangesetsOnBuildBreak
BeforeDropBuild (Überschreiben möglich)
CoreDropBuild
AfterDropBuild (Überschreiben möglich)
BeforeCreateWorkItem (Überschreiben möglich)
CoreCreateWorkItem
AfterCreateWorkItem (Überschreiben möglich)
CoreOnBuildBreak
AfterOnBuildBreak (Überschreiben möglich)
Siehe auch
Aufgaben
Gewusst wie: Schreiben von Aufgaben
Konzepte
Team Foundation Build-Konfigurationsdateien