ItemGroup 項目 (MSBuild)
包含一組使用者定義的 Item 項目。 MSBuild 專案中使用的每個項目,都必須指定為 ItemGroup
元素的子系。
<Project><ItemGroup>
語法
<ItemGroup Condition="'String A' == 'String B'"
Label="Label">
<Item1>... </Item1>
<Item2>... </Item2>
</ItemGroup>
屬性和元素
下列章節說明屬性、子元素和父元素。
屬性
屬性 | 描述 |
---|---|
Condition |
選用屬性。 要評估的條件。 如需詳細資訊,請參閱條件。 |
Label |
選用屬性。 識別 ItemGroup 。 |
子元素
元素 | 描述 |
---|---|
項目 | 定義建置程序的輸入。 ItemGroup 中可能有零或多個 Item 項目。 |
除了泛型 Item
元素之外,ItemGroup 還允許代表項目類型的子項目,例如 Reference
、ProjectReference
、Compile
和其他項目,如 Common MSBuild 專案項目所列的項目。
父元素
元素 | 描述 |
---|---|
計畫 | MSBuild 專案檔的必要根項目。 |
Target | 從 .NET Framework 3.5 開始,ItemGroup 項目可以出現在 Target 項目內部。 如需詳細資訊,請參閱目標。 |
範例
下列程式碼範例示範使用者定義的項目 (Item) 集合 Res
,以及在 ItemGroup
項目 (Element) 內部宣告的 CodeFiles
。 Res
項目 (Item) 集合中的每個項目 (Item),都會包含使用者定義的子系 ItemMetadata 項目 (Element)。
<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 指令碼的方法,或做為影響建置動作的控制項設定。