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 |
省略可能な属性です。 アイテムのリストから除外するファイルまたはワイルドカードです。 |
Condition |
省略可能な属性です。 評価する条件です。詳細については、「MSBuild の条件」を参照してください。 |
Remove |
省略可能な属性です。 アイテムのリストから削除するファイルまたはワイルドカードです。 この属性は ItemGroup で Targetにある項目に指定した場合にのみ有効です。 |
KeepMetadata |
省略可能な属性です。 ターゲット項目に追加するソースの項目のメタデータ。名前がセミコロン区切りのリストで指定するメタデータだけソースの項目からターゲット項目に移動します。詳細については、「MSBuild 項目」を参照してください。 この属性は ItemGroup で Targetにある項目に指定した場合にのみ有効です。 |
RemoveMetadata |
省略可能な属性です。 ターゲット項目に移らない元のアイテムのメタデータ。すべてのメタデータは、ソースの項目の名前のセミコロン区切りのリストに含まれるメタデータを除くターゲット項目に移動します。詳細については、「MSBuild 項目」を参照してください。 この属性は ItemGroup で Targetにある項目に指定した場合にのみ有効です。 |
KeepDuplicates |
省略可能な属性です。 アプリケーションで既存の項目の正確な複製が項目がターゲット グループに追加するかどうかを指定します。ソースとターゲット項目に Include 異なるメタデータを同じ値になりますが、項目は KeepDuplicatesfalseがに設定されている場合でも追加されます。詳細については、「MSBuild 項目」を参照してください。 この属性は ItemGroup で Targetにある項目に指定した場合にのみ有効です。 |
子要素
要素 |
説明 |
---|---|
アイテム メタデータ値を含むユーザー定義のアイテム メタデータ キーです。アイテムには、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>
</CSFile>
</ItemGroup>