Item 項目 (MSBuild)
更新:2007 年 11 月
含有使用者定義的項目及其中繼資料 (Metadata)。MSBuild 專案中使用的每個項目 (Item),都必須指定為 ItemGroup 項目 (Element) 的子系。
<Item Include="*.cs"
Exclude="MyFile.cs"
Condition="'String A'=='String B'" >
<ItemMetadata1>...</ItemMetadata1>
<ItemMetadata2>...</ItemMetadata2>
</Item>
屬性和項目
下列小節將說明屬性 (Attribute)、子項目和父項目。
屬性
屬性 |
描述 |
---|---|
Include |
必要的屬性。 要包括在項目中的檔案或萬用字元。 |
Exclude |
選擇性屬性。 要從項目排除的檔案或萬用字元。 |
Condition |
選擇性屬性。 要評估的條件。如需詳細資訊,請參閱 MSBuild 條件。 |
子項目
項目 |
描述 |
---|---|
使用者定義的項目中繼資料索引鍵,其中含有項目中繼資料值。項目 (Item) 中可能有零個或多個 ItemMetadata 項目 (Element)。 |
父項目
項目 |
描述 |
---|---|
項目 (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>
</Item>
</ItemGroup>