Item 元素 (MSBuild)
更新:2007 年 11 月
包含用户定义的项及其元数据。必须将 MSBuild 项目中使用的每个项都指定为 ItemGroup 元素的子元素。
<Item Include="*.cs"
Exclude="MyFile.cs"
Condition="'String A'=='String B'" >
<ItemMetadata1>...</ItemMetadata1>
<ItemMetadata2>...</ItemMetadata2>
</Item>
属性和元素
以下几节描述了属性、子元素和父元素。
属性
属性 |
说明 |
---|---|
Include |
必需。 要包含在项中的文件或通配符。 |
Exclude |
可选。 要从项中排除的文件或通配符。 |
Condition |
可选。 要计算的条件。有关更多信息,请参见 MSBuild 条件。 |
子元素
元素 |
说明 |
---|---|
包含用户定义的项元数据项,该项元数据项包含项元数据值。一个项中可能有零个或零个以上的 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>
</Item>
</ItemGroup>