MSBuild 常见的项元数据

项元数据是附加到项的值。 有些是由 MSBuild 在创建项时分配给项的,但你也可以定义所需的任何元数据。 一些用户定义的元数据值对于 MSBuild、特定任务或 SDK(如 .NET SDK)具有意义。

本文的第一个表格介绍了创建每个项时分配给该项的元数据。 下表显示了一些对于 MSBuild 有意义的可选元数据,你可以定义这些元数据来控制生成行为。 在每个示例中,以下项声明用于将文件 C:\MyProject\Source\Program.cs 包含在项目中。

<ItemGroup>
    <MyItem Include="Source\Program.cs" />
</ItemGroup>
项元数据 描述
%(FullPath) 包含项的完整路径。 例如:

C:\MyProject\Source\Program.cs
%(RootDir) 包含项的根目录。 例如:

C:\
%(Filename) 包含项的文件名,但不包含扩展名。 例如:

Program
%(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) 包含定义此项的项目文件(或导入的文件)的扩展名。

另请参阅