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

省略可能な属性です。

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

Remove

省略可能な属性です。

アイテムのリストから削除するファイルまたはワイルドカードです。 この属性は、TargetItemGroup に含まれるアイテムに指定した場合にのみ有効です。

Condition

省略可能な属性です。

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

子要素

要素

説明

ItemMetadata

アイテム メタデータ値を含むユーザー定義のアイテム メタデータ キーです。 アイテムには、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>
    </CSFile>
</ItemGroup>

参照

概念

MSBuild 項目

MSBuild プロパティ

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