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

可选特性。

要从项列表中排除的文件或通配符。

Remove

可选特性。

要从项列表中删除的文件或通配符。 仅当为 TargetItemGroup 中的项目指定此特性时,此特性才有效。

Condition

可选特性。

要计算的条件。 有关更多信息,请参见 MSBuild 条件

子元素

元素

说明

ItemMetadata

包含用户定义的项元数据项,该项元数据项包含项元数据值。 项中可以有零个或多个 ItemMetadata 元素。

父元素

元素

说明

ItemGroup

项的分组元素。

备注

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>

请参见

概念

MSBuild 项

MSBuild 属性

MSBuild 项目文件架构引用