Общеизвестные метаданные элементов MSBuild

Метаданные элемента — это значения, присоединенные к элементам. Некоторые назначаются элементам MSBuild при их создании, но вы также можете самостоятельно определить любые необходимые метаданные. Некоторые значения пользовательских метаданных используются MSBuild, определенными задачами или пакетами SDK, например пакетом SDK для .NET.

В первой таблице в этой статье описаны метаданные, которые назначаются каждому элементу при его создании. В следующей таблице показаны некоторые необязательные метаданные, которые использует MSBuild и которые вы можете задать для управления поведением сборки. В каждом примере для включения в проект файла C:\MyProject\Source\Program.cs используется следующее объявление элемента.

<ItemGroup>
    <MyItem Include="Source\Program.cs" />
</ItemGroup>
Метаданные элементов Description
%(FullPath) Содержит полный путь к элементу. Например:

C:\MyProject\Source\Program.cs
%(RootDir) Содержит корневой каталог элемента. Например:

C:\
%(Filename) Содержит имя файла элемента без расширения. Например:

Программа
%(Extension) Содержит расширение имени файла элемента. Например:

.cs
%(RelativeDir) Содержит путь, указанный в атрибуте Include, до последней обратной косой черты (\). Например:

Source\

Если атрибут Include представляет полный путь, %(RelativeDir) начинается с корневого каталога %(RootDir). Например:

C:\MyProject\Source\
%(Directory) Содержит каталог элемента без корневого каталога. Например:

MyProject\Source\
%(RecursiveDir) Если атрибут Include содержит подстановочный знак **, эти метаданные определяют путь, который используется вместо подстановочного знака. Дополнительные сведения о подстановочных знаках см. в статье Практическое руководство. Выбор файлов для построения.

Если папка C:\MySolution\MyProject\Source\ содержит файл Program.cs, а файл проекта содержит такой элемент:

<ItemGroup>

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

</ItemGroup>

то параметр %(MyItem.RecursiveDir) принимает значение MySolution\MyProject\Source\.
%(Identity) Элемент, заданный в атрибуте Include. Например:

Source\Program.cs
%(ModifiedTime) Содержит метку времени, соответствующую времени последнего изменения элемента. Например:

2004-07-01 00:21:31.5073316
%(CreatedTime) Содержит метку времени, соответствующую времени создания элемента. Например:

2004-06-25 09:26:45.8237425
%(AccessedTime) Содержит метку времени, соответствующую времени последнего доступа к элементу.

2004-08-14 16:52:36.3168743
%(DefiningProjectFullPath) Содержит полный путь к файлу проекта (или импортированному файлу), который определяет этот элемент.
%(DefiningProjectDirectory) Содержит каталог проекта файла проекта (или импортированного файла), который определяет этот элемент.
%(DefiningProjectName) Содержит имя файла проекта (или импортированного файла), определяющего этот элемент (без расширения).
%(DefiningProjectExtension) Содержит расширение файла проекта (или импортированного файла), определяющего этот элемент.

См. также