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:\ |
%(文件名) | 包含项的文件名,不带扩展名。 例如: 计划 |
%(扩展) | 包含项的文件扩展名。 例如: .cs |
%(RelativeDir) | 包含 Include 属性中指定的路径,最长为最终反斜杠 (\)。 例如:Source\ 如果 Include 属性是完整路径,%(RelativeDir) 以根目录 %(RootDir) 开头。 例如:C:\MyProject\Source\ |
%(目录) | 包含项的目录,不包含根目录。 例如: MyProject\Source\ |
%(递归Dir) | 如果 Include 属性包含通配符 **,则此元数据指定替换通配符的路径的一部分。 有关通配符的详细信息,请参阅 如何:选择要生成的文件。如果文件夹 C:\MySolution\MyProject\Source\ 包含文件 Program.cs,并且项目文件是否包含此项: <ItemGroup> <MyItem Include="C:\**\Program.cs" /> </ItemGroup> 然后, %(MyItem.RecursiveDir) 的值将 MySolution\MyProject\Source\。 |
%(标识) |
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) | 包含定义此项的项目文件(或导入的文件)的扩展名。 |