Item 元素 (MSBuild)
包含用户定义的项及其元数据。 MSBuild 项目中使用的每一项都必须指定为 ItemGroup 元素的子元素。
<Item Include="*.cs"
Exclude="MyFile.cs"
Remove="RemoveFile.cs"
Condition="'String A'=='String B'" >
<ItemMetadata1>...</ItemMetadata1>
<ItemMetadata2>...</ItemMetadata2>
</Item>
特性和元素
以下几节描述了特性、子元素和父元素。
特性
特性 |
描述 |
---|---|
Include |
必需的特性。 要包含在项列表中的文件或通配符。 |
Exclude |
可选特性。 要从项列表中排除的文件或通配符。 |
Condition |
可选特性。 要计算的条件。 有关更多信息,请参见MSBuild 条件。 |
Remove |
可选特性。 要从项列表中删除的文件或通配符。 此属性是有效的,并且只为 Target的项目指定了 ItemGroup。 |
KeepMetadata |
可选特性。 源项目的元数据以添加到目标项。 名称以分号分隔的产品区域定义的元数据列表从源项目转到目标项目。 有关更多信息,请参见MSBuild 项。 此属性是有效的,并且只为 Target的项目指定了 ItemGroup。 |
RemoveMetadata |
可选特性。 源项目的元数据以转到目标项目。 所有元数据从源项目传输到除名称以分号分隔的列表包含名称的元数据的一个目标项目。 有关更多信息,请参见MSBuild 项。 此属性是有效的,并且只为 Target的项目指定了 ItemGroup。 |
KeepDuplicates |
可选特性。 指定是否应将项添加到目标组,则完全相同的副本现有项目。 如果源页和目标项目具有相同的 Include 值,但不同的元数据,该项将添加,即使 KeepDuplicates 设置为 false。 有关更多信息,请参见MSBuild 项。 此属性是有效的,并且只为 Target的项目指定了 ItemGroup。 |
子元素
元素 |
描述 |
---|---|
包含用户定义的项元数据项,该项元数据项包含项元数据值。 项中可以有零个或多个 ItemMetadata 元素。 |
父元素
元素 |
描述 |
---|---|
项的分组元素。 |
备注
Item 元素定义生成系统的输入,并根据其用户定义的集合名称,分组到项集合中。 这些项集合可以用作任务的参数,任务使用集合中的单个项来执行生成过程的步骤。 有关更多信息,请参见MSBuild 项。
使用 @(myType) 表示法,可以将 myType 类型的项集合展开成以分号分隔的字符串列表,并将其传递给参数。 如果参数的类型为 string,则参数的值是以分号分隔的元素列表。 如果参数是字符串数组 (string[]),则将根据分号的位置将每个元素插入数组。 如果任务参数的类型为 ITaskItem[],则值为项集合内容及附加的任意元数据。 若要使用除分号以外的其他字符来分隔每个项,请使用语法 @(myType, 'separator')。
MSBuild 引擎能够计算诸如 * 和 ? 等通配符,以及诸如 /**/*.cs 等递归通配符。 有关更多信息,请参见MSBuild 项。
示例
下面的代码示例演示如何声明类型为 CSFile 的两个项。 第二个声明的项包含将 myAttribute 设置为 HelloWorld 的元数据。
<ItemGroup>
<CSFile Include="engine.cs; form.cs" />
<CSFile Include="main.cs" >
<MyMetadata>HelloWorld</MyMetadata>
</CSFile>
</ItemGroup>