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 还允许表示项类型的子元素,例如 ReferenceProjectReferenceCompile,以及常用的 MSBuild 项目项中列出的其他元素。

父元素

元素 描述
Project MSBuild 项目文件必需的根元素。
Target 从 .NET Framework 3.5 开始,ItemGroup 元素可以出现在 Target 元素内部。 有关详细信息,请参阅目标

示例

以下代码示例演示用户定义的项集合 ResItemGroup 元素内部声明的 CodeFilesRes 项集合中的每个项均包含用户定义的子 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 脚本的一种方法,或作为影响生成操作的控件设置。

请参阅