Share via


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

選擇性屬性。

要從項目清單中排除的檔案或萬用字元。

Condition

選擇性屬性。

要評估的條件。 如需詳細資訊,請參閱MSBuild 條件

Remove

選擇性屬性。

要從項目清單移除的檔案或萬用字元。

這個屬性只有在針對 Target 中的 ItemGroup 項目指定時才有效。

KeepMetadata

選擇性屬性。

要加入目標項目之來源項目的中繼資料。 只有其名稱指定在分號分隔清單中的中繼資料,會從來源項目傳輸到目標項目。 如需詳細資訊,請參閱MSBuild 項目

這個屬性只有在針對 Target 中的 ItemGroup 項目指定時才有效。

RemoveMetadata

選擇性屬性。

不要傳輸到目標項目之來源項目的中繼資料。 所有中繼資料會從來源項目傳輸到目標項目,名稱包含在以分號分隔的名稱清單中之中繼資料除外。 如需詳細資訊,請參閱MSBuild 項目

這個屬性只有在針對 Target 中的 ItemGroup 項目指定時才有效。

KeepDuplicates

選擇性屬性。

指定項目如果與現有項目完全重複,是否應加入目標群組。 如果來源和目標項目具有相同的 Include 值,但中繼資料不同,則即使 KeepDuplicates 設定為 false,也會加入該項目。 如需詳細資訊,請參閱MSBuild 項目

這個屬性只有在針對 Target 中的 ItemGroup 項目指定時才有效。

子項目

項目

描述

ItemMetadata

使用者定義的項目中繼資料索引鍵,其中含有項目中繼資料值。 項目中可能有零個或多個 ItemMetadata 項目。

父項目

項目

描述

ItemGroup

項目的群組項目。

備註

Item 項目定義建置系統的輸入,且會依據使用者定義的集合名稱,分組成為項目集合。 這些項目集合可以用做為工作的參數,工作會使用集合中個別的項目來執行建置流程的步驟。 如需詳細資訊,請參閱MSBuild 項目

使用標記法 @(myType) 可讓類型 myType 的項目集合,展開為以分號分隔的字串清單,並傳遞至參數。 如果參數的類型是 string,則參數的值會是以分號分隔的項目清單。 如果參數是字串陣列 (string[]),則每個項目都會根據分號的位置,插入到陣列中。 如果工作參數的類型是 ITaskItem[],則值就是項目集合的內容再加上任何附加的中繼資料。 若要使用非分號的字元來分隔每個項目,請使用語法 @(myType, '分隔符號')。

MSBuild 引擎可以評估萬用字元 (例如 * 和 ?) 以及遞迴萬用字元 (例如 /**/*.cs)。 如需詳細資訊,請參閱MSBuild 項目

範例

下列程式碼範例示範如何宣告類型為 CSFile 的兩個項目。 第二個宣告項目包含 MyMetadata 設定為 HelloWorld 的中繼資料。

<ItemGroup>
    <CSFile Include="engine.cs; form.cs" />
    <CSFile Include="main.cs" >
        <MyMetadata>HelloWorld</MyMetadata>
    </CSFile>
</ItemGroup>

請參閱

概念

MSBuild 項目

MSBuild 屬性

MSBuild 專案檔案結構描述參考