Item 要素 (MSBuild)

更新 : 2007 年 11 月

ユーザー定義のアイテムおよびそのメタデータが含まれています。MSBuild プロジェクトで使用する各アイテムは、ItemGroup の子要素として指定する必要があります。

<Item Include="*.cs"
        Exclude="MyFile.cs"
        Condition="'String A'=='String B'" >
    <ItemMetadata1>...</ItemMetadata1>
    <ItemMetadata2>...</ItemMetadata2>
</Item>

属性と要素

以降のセクションでは、属性、子要素、および親要素について説明します。

属性

属性

説明

Include

必須属性

アイテムに含めるファイルまたはワイルドカードです。

Exclude

省略可能属性

アイテムから除外するファイルまたはワイルドカードです。

Condition

省略可能属性

評価する条件です。詳細については、「MSBuild の条件」を参照してください。

子要素

要素

説明

ItemMetadata

アイテム メタデータ値を含むユーザー定義のアイテム メタデータ キーです。1 つのアイテムは、ItemMetadata 要素を 0 個以上持つことができます。

親要素

要素

説明

ItemGroup

アイテムをグループ化するための要素です。

解説

Item 要素には、ビルド システムへの入力を定義します。この要素は、要素のユーザー定義のコレクション名に基づいて、アイテム コレクションにグループ化されます。これらのアイテム コレクションは、タスクのパラメータとして使用できます。タスクでは、コレクション内の個別のアイテムを使用してビルド プロセスの各ステップを実行します。詳細については、「MSBuild 項目」を参照してください。

@(myType) と表記すると、myType 型のアイテム コレクションを、セミコロン (;) で区切った文字列のリストに展開できます。展開結果は、パラメータに渡すことができます。パラメータが string 型の場合、パラメータの値は、セミコロンで区切られた要素のリストになります。パラメータが文字列の配列 (string[]) の場合には、各要素がセミコロンの位置に基づいて配列に挿入されます。タスク パラメータが ITaskItem[] 型の場合には、値は、各メタデータが添付された、アイテム コレクションの内容になります。各アイテムをセミコロン以外の文字で区切るには、@(myType, 'separator') という構文を使用します。

MSBuild エンジンでは、* や ? などのワイルドカードを評価でき、/**/*.cs のような再帰的なワイルドカードも評価できます。詳細については、「MSBuild 項目」を参照してください。

使用例

CSFile 型のアイテム 2 個を宣言する方法を示すコード例を次に示します。2 番目に宣言されたアイテムには、myAttribute 属性に HelloWorld と設定したメタデータが添付されています。

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

参照

概念

MSBuild 項目

MSBuild プロパティ

MSBuild プロジェクト ファイル スキーマ リファレンス