ItemGroup 元素 (MSBuild)
包含一组用户定义的 Item 元素。 MSBuild 项目中使用的每一个项都必须被指定为 ItemGroup
元素的子元素。
<Project><ItemGroup>
语法
<ItemGroup Condition="'String A' == 'String B'"
Label="Label">
<Item1>... </Item1>
<Item2>... </Item2>
</ItemGroup>
特性和元素
下列各节描述了特性、子元素和父元素。
特性
属性 | 描述 |
---|---|
Condition |
可选特性。 要计算的条件。 有关详细信息,请参阅条件。 |
Label |
可选特性。 标识 ItemGroup 。 |
子元素
元素 | 描述 |
---|---|
Item | 定义生成过程的输入。 ItemGroup 中可能没有或有一些 Item 元素。 |
除了通用的 Item
元素之外,ItemGroup 还允许表示项类型的子元素,例如 Reference
、ProjectReference
、Compile
,以及常用的 MSBuild 项目项中列出的其他元素。
父元素
元素 | 描述 |
---|---|
Project | MSBuild 项目文件必需的根元素。 |
Target | 从 .NET Framework 3.5 开始,ItemGroup 元素可以出现在 Target 元素内部。 有关详细信息,请参阅目标。 |
示例
以下代码示例演示用户定义的项集合 Res
和 ItemGroup
元素内部声明的 CodeFiles
。 Res
项集合中的每个项均包含用户定义的子 ItemMetadata 元素。
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Res Include = "Strings.fr.resources" >
<Culture>fr</Culture>
</Res>
<Res Include = "Dialogs.fr.resources" >
<Culture>fr</Culture>
</Res>
<CodeFiles Include="**\*.cs" Exclude="**\generated\*.cs" />
<CodeFiles Include="..\..\Resources\Constants.cs" />
</ItemGroup>
...
</Project>
在简单的项目文件中,通常使用单个 ItemGroup
元素,但也可以使用多个 ItemGroup
元素。 当使用多个 ItemGroup
元素时,多个项会合并为单个 ItemGroup
。 例如,某些项可能包含在导入文件中定义的单独 ItemGroup
元素中。
ItemGroups 可以通过使用 Condition
属性来应用条件。 在这种情况下,仅当满足条件时才会将项添加到项列表。 请参阅 MSBuild 条件
Label
属性在某些生成系统中用作控制生成行为的方式。 只能在声明中使用它,作为创建更易于理解的 MSBuild 脚本的一种方法,或作为影响生成操作的控件设置。