Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Enthält eine Reihe von Aufgaben für MSBuild, die sequenziell ausgeführt werden sollen.
<Projektziel><>
Syntax
<Target Name="Target Name"
Inputs="Inputs"
Outputs="Outputs"
Returns="Returns"
KeepDuplicateOutputs="true/false"
BeforeTargets="Targets"
AfterTargets="Targets"
DependsOnTargets="DependentTarget"
Condition="'String A' == 'String B'"
Label="Label">
<Task>... </Task>
<PropertyGroup>... </PropertyGroup>
<ItemGroup>... </ItemGroup>
<OnError... />
</Target>
Attribute und Elemente
In den folgenden Abschnitten werden Attribute, untergeordnete Elemente und übergeordnete Elemente beschrieben.
Attribute
| Merkmal | Description |
|---|---|
Name |
Erforderliches Attribut. Der Name des Ziels. Ein Zielname darf ein beliebiges Zeichen mit Ausnahme $@()%*?.von . |
Condition |
Optionales Attribut. Die zu bewertende Bedingung. Wenn die Bedingung ausgewertet wird, führt das Ziel weder den Textkörper des Ziels falsenoch ziele aus, die DependsOnTargets im Attribut festgelegt sind. Weitere Informationen zu Bedingungen finden Sie unter Bedingungen. |
Inputs |
Optionales Attribut. Die Dateien, die Eingaben in dieses Ziel bilden. Mehrere Dateien werden durch Semikolons getrennt. Die Zeitstempel der Dateien werden mit den Zeitstempeln von Dateien Outputs verglichen, um zu bestimmen, ob die Target Datei auf dem neuesten Stand ist. Weitere Informationen finden Sie unter Inkrementelle Builds, Vorgehensweise: Inkrementelles Erstellen und Transformieren. |
Outputs |
Optionales Attribut. Die Dateien, die formularieren, werden in dieses Ziel ausgegeben. Mehrere Dateien werden durch Semikolons getrennt. Die Zeitstempel der Dateien werden mit den Zeitstempeln von Dateien Inputs verglichen, um zu bestimmen, ob die Target Datei auf dem neuesten Stand ist. Weitere Informationen finden Sie unter Inkrementelle Builds, Vorgehensweise: Inkrementelles Erstellen und Transformieren. |
Returns |
Optionales Attribut. Der Satz von Elementen, die Aufgaben verfügbar gemacht werden, die dieses Ziel aufrufen, z. B. MSBuild-Aufgaben. Mehrere Ziele werden durch Semikolons getrennt. Wenn die Ziele in der Datei keine Returns Attribute aufweisen, werden stattdessen die Outputs-Attribute für diesen Zweck verwendet. |
KeepDuplicateOutputs |
Optionales boolesches Attribut. Wenn truemehrere Verweise auf dasselbe Element in den Rückgaben des Ziels aufgezeichnet werden. Dieses Attribut ist falsestandardmäßig . |
BeforeTargets |
Optionales Attribut. Eine durch Semikolons getrennte Liste von Zielnamen. Gibt an, dass dieses Ziel vor dem angegebenen Ziel oder den angegebenen Zielen ausgeführt werden soll. Auf diese Weise kann der Projektautor eine vorhandene Gruppe von Zielen erweitern, ohne sie direkt zu ändern. Weitere Informationen finden Sie unter Zielbuildreihenfolge. |
AfterTargets |
Optionales Attribut. Eine durch Semikolons getrennte Liste von Zielnamen. Gibt an, dass dieses Ziel nach dem angegebenen Ziel oder den angegebenen Zielen ausgeführt werden soll. Auf diese Weise kann der Projektautor eine vorhandene Gruppe von Zielen erweitern, ohne sie direkt zu ändern. Weitere Informationen finden Sie unter Zielbuildreihenfolge. |
DependsOnTargets |
Optionales Attribut. Die Ziele, die ausgeführt werden müssen, bevor dieses Ziel ausgeführt werden kann, oder eine Abhängigkeitsanalyse auf oberster Ebene kann auftreten. Mehrere Ziele werden durch Semikolons getrennt. |
Label |
Optionales Attribut. Ein Bezeichner, der System- und Benutzerelemente identifizieren oder bestellen kann. |
Untergeordnete Elemente
| Element | Description |
|---|---|
| Aufgabe | Erstellt und führt eine Instanz einer MSBuild-Aufgabe aus. Es kann null oder mehr Vorgänge in einem Ziel geben. |
| PropertyGroup | Enthält einen Satz von benutzerdefinierten Property Elementen. Ein Target Element kann Elemente enthalten PropertyGroup . |
| ItemGroup | Enthält einen Satz von benutzerdefinierten Item Elementen. Ein Target Element kann Elemente enthalten ItemGroup . Weitere Informationen finden Sie unter Items. |
| OnError | Bewirkt, dass mindestens ein Ziel ausgeführt wird, wenn das ContinueOnError Attribut ErrorAndStop (oder false) für einen fehlgeschlagenen Vorgang ist. Es kann null oder mehr OnError Elemente in einem Ziel geben. Wenn OnError Elemente vorhanden sind, müssen sie die letzten Elemente im Target Element sein.Informationen zum Attribut finden Sie unter Task-Element (MSBuild).For information about the ContinueOnError attribute, see Task element (MSBuild). |
Übergeordnete Elemente
| Element | Description |
|---|---|
| Projekt | Erforderliches Stammelement einer MSBuild-Projektdatei. |
Bemerkungen
Das erste auszuführende Ziel wird zur Laufzeit angegeben. Ziele können Abhängigkeiten von anderen Zielen haben. Beispielsweise hängt ein Ziel für die Bereitstellung von einem Ziel für die Kompilierung ab. Das MSBuild-Modul führt Abhängigkeiten in der Reihenfolge aus, in der DependsOnTargets sie im Attribut angezeigt werden, von links nach rechts. Weitere Informationen finden Sie unter "Ziele".
MSBuild ist abhängig von der Importreihenfolge, und die letzte Definition eines Ziels mit einem bestimmten Name Attribut ist die verwendete Definition.
Ein Ziel wird nur einmal während eines Builds ausgeführt, auch wenn mehrere Ziel davon abhängig sind.
Wenn ein Ziel übersprungen falsewird, da sein Condition Attribut ausgewertet wird, kann es weiterhin ausgeführt werden, wenn es später im Build aufgerufen wird und sein Condition Attribut zu diesem Zeitpunkt ausgewertet wirdtrue.
Vor MSBuild 4 wurden alle Elemente zurückgegeben, Target die Outputs im Attribut angegeben wurden. Dazu musste MSBuild diese Elemente aufzeichnen, falls aufgaben später im Build angefordert wurden. Da es keine Möglichkeit gab, anzugeben, welche Ziele Ausgaben hatten, die Aufrufer erfordern würden, sammelte MSBuild alle Elemente aller Outputs aufgerufenen Targets. Dies führt zu Skalierungsproblemen für Builds mit einer großen Anzahl von Ausgabeelementen.
Wenn der Benutzer ein Returns Element Target in einem Projekt angibt, werden nur die TargetElemente mit einem Returns Attributeintrag erfasst.
A Target kann sowohl ein Outputs Attribut als auch ein Returns Attribut enthalten.
Outputs wird verwendet, Inputs um zu bestimmen, ob das Ziel up-to-date ist.
Returns, falls vorhanden, setzt den Wert Outputs außer Kraft, um zu bestimmen, welche Elemente an Aufrufer zurückgegeben werden. Wenn Returns sie nicht vorhanden ist, Outputs werden Anrufer mit Ausnahme des zuvor beschriebenen Falls verfügbar gemacht.
Vor MSBuild 4 werden jedes Mal, wenn ein Target mehrfacher Verweis auf dasselbe Element in seinem OutputsElement enthalten ist, diese doppelten Elemente aufgezeichnet. In sehr großen Builds mit einer großen Anzahl von Ausgaben und vielen Projektabhängigkeiten würde dies dazu führen, dass eine große Menge Arbeitsspeicher verschwendet wird, da die doppelten Elemente nicht verwendet wurden. Wenn das KeepDuplicateOutputs Attribut auf true festgelegt ist, werden diese Duplikate aufgezeichnet.
Example
Das folgende Codebeispiel zeigt ein Target Element, das die Csc Aufgabe ausführt.
<Target Name="Compile" DependsOnTargets="Resources" Returns="$(TargetPath)">
<Csc Sources="@(CSFile)"
TargetType="library"
Resources="@(CompiledResources)"
EmitDebugInformation="$(includeDebugInformation)"
References="@(Reference)"
DebugType="$(debuggingType)" >
<Output TaskParameter="OutputAssembly"
ItemName="FinalAssemblyName" />
</Csc>
</Target>