Item 項目 (MSBuild)
含有使用者定義的項目及其中繼資料 (Metadata)。 MSBuild 專案中使用的每個項目 (Item),都必須指定為 ItemGroup 項目 (Element) 的子項目。
<Item Include="*.cs"
Exclude="MyFile.cs"
Remove="RemoveFile.cs"
Condition="'String A'=='String B'" >
<ItemMetadata1>...</ItemMetadata1>
<ItemMetadata2>...</ItemMetadata2>
</Item>
屬性和項目
下列各節將說明屬性、子項目和父項目。
屬性
屬性 |
描述 |
---|---|
Include |
必要屬性。 要包括在項目清單中的檔案或萬用字元。 |
Exclude |
選擇性屬性。 要從項目清單中排除的檔案或萬用字元。 |
Remove |
選擇性屬性。 要從項目清單中移除的檔案或萬用字元。 此屬性只有在指定給 Target 的 ItemGroup 中的項目時才有效。 |
Condition |
選擇性屬性。 要評估的條件。 如需詳細資訊,請參閱MSBuild 條件。 |
子項目
項目 |
描述 |
---|---|
使用者定義的項目中繼資料索引鍵,其中含有項目中繼資料值。 ItemMetadata 項目 (Element) 中可以有零或多個項目 (Item)。 |
父項目
項目 |
描述 |
---|---|
項目 (Item) 的群組項目 (Element)。 |
備註
Item 項目 (Element) 定義對建置 (Build) 系統的輸入,並根據使用者定義的集合名稱,群組為項目 (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>
</CSFile>
</ItemGroup>