Bekannte MSBuild-Elementmetadaten

Elementmetadaten sind an Elemente angefügte Werte. Einige werden den Elementen von MSBuild zugewiesen, wenn Elemente erstellt werden, aber Sie können auch jegliche benötigten Metadaten selbst definieren. Einige benutzerdefinierte Metadatenwerte haben eine Bedeutung in MSBuild, in bestimmten Aufgaben oder in SDKs wie z. B. dem .NET SDK.

In der ersten Tabelle in diesem Artikel werden die jedem Element bei der Erstellung zugewiesenen Metadaten beschrieben. Die nächste Tabelle zeigt einige optionale Metadaten, die eine Bedeutung in MSBuild haben und die Sie zum Steuern des Buildverhaltens definieren können. In jedem Beispiel wurde die folgende Elementdeklaration verwendet, um die Datei C:\MyProject\Source\Program.cs in das Projekt aufzunehmen.

<ItemGroup>
    <MyItem Include="Source\Program.cs" />
</ItemGroup>
Elementmetadaten Beschreibung
%(FullPath) Enthält den vollständigen Pfad des Elements. Beispiel:

C:\MyProject\Source\Program.cs
%(RootDir) Enthält das Stammverzeichnis des Elements. Beispiel:

C:\
%(Filename) Enthält den Dateinamen des Elements ohne Erweiterung. Beispiel:

Program
%(Extension) Enthält die Dateierweiterung des Elements. Beispiel:

.cs
%(RelativeDir) Enthält den im Include-Attribut angegebenen Pfad bis zum abschließenden umgekehrten Schrägstrich (\). Beispiel:

Quelle\

Wenn das Include-Attribut ein vollständiger Pfad ist, beginnt %(RelativeDir) mit dem Stammverzeichnis %(RootDir). Beispiel:

C:\MyProject\Source\
%(Directory) Enthält das Verzeichnis des Elements ohne das Stammverzeichnis. Zum Beispiel:

MyProject\Source\
%(RecursiveDir) Wenn das Include-Attribut das Platzhalterzeichen ** enthält, geben diese Metadaten den Teil des Pfads an, der das Platzhalterzeichen ersetzt. Weitere Informationen zu Platzhaltern finden Sie unter Vorgehensweise: Auswählen von Dateien für den Buildvorgang.

Wenn der Ordner C:\MySolution\MyProject\Source\ die Datei Program.cs enthält und wenn die Projektdatei dieses Element enthält:

<ItemGroup>

<MyItem Include="C:\**\Program.cs" />

</ItemGroup>

dann ist der Wert von %(MyItem.RecursiveDir) gleich MySolution\MyProject\Source\.
%(Identity) Das im Include-Attribut angegebene Element. Beispiel:

Source\Program.cs
%(ModifiedTime) Enthält den Zeitstempel vom Zeitpunkt der letzten Änderung des Elements. Zum Beispiel:

2004-07-01 00:21:31.5073316
%(CreatedTime) Enthält den Zeitstempel vom Zeitpunkt der Erstellung des Elements. Zum Beispiel:

2004-06-25 09:26:45.8237425
%(AccessedTime) Enthält den Zeitstempel vom Zeitpunkt des letzten Zugriffs auf das Element.

2004-08-14 16:52:36.3168743
%(DefiningProjectFullPath) Enthält den vollständigen Pfad der Projektdatei (oder importierten Datei), die dieses Element definiert.
%(DefiningProjectDirectory) Enthält das Projektverzeichnis der Projektdatei (oder importierten Datei), die dieses Element definiert.
%(DefiningProjectName) Enthält den Namen der Projektdatei (oder importierte Datei), die dieses Element definiert (ohne Erweiterung).
%(DefiningProjectExtension) Enthält die Erweiterung der Projektdatei (oder importierten Datei), die dieses Element definiert.

Siehe auch