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 の条件」を参照してください。 |
子要素
要素 |
説明 |
---|---|
アイテム メタデータ値を含むユーザー定義のアイテム メタデータ キーです。1 つのアイテムは、ItemMetadata 要素を 0 個以上持つことができます。 |
親要素
要素 |
説明 |
---|---|
アイテムをグループ化するための要素です。 |
解説
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>