CreateItem タスク
入力されたアイテムでアイテム コレクションを作成します。あるリストから別のリストにアイテムをコピーできます。
[!メモ]
このタスクは推奨されていません。.NET Framework 3.5 以降では、アイテム グループを Target 要素内に配置できます。詳細については、「MSBuild 項目」を参照してください。
属性
CreateItem タスクのパラメーターの説明を次の表に示します。
パラメーター |
Description |
---|---|
AdditionalMetadata |
省略可能な String 型の配列パラメーターです。 出力アイテムに添付するメタデータを指定します。アイテムに添付するメタデータの名前と値を、次の構文で指定します。 MetadataName=MetadataValue メタデータの名前と値のペアを複数指定する場合には、セミコロン (;) で区切ります。名前か値にセミコロンなどの特殊文字が含まれている場合、それらの文字にはエスケープ処理が必要です。詳細については、「方法 : MSBuild で特殊文字をエスケープする」を参照してください。 |
Exclude |
省略可能な ITaskItem[] 型の出力パラメーター。 出力するアイテム コレクションから除外するアイテムを指定します。このパラメーターで指定するアイテムには、ワイルドカードを使用できます。詳細については、「MSBuild 項目」および「方法: ビルドからファイルを除外する」を参照してください。 |
Include |
必須の ITaskItem[] 型のパラメーターです。 出力するアイテム コレクションに含めるアイテムを指定します。このパラメーターで指定するアイテムには、ワイルドカードを使用できます。 |
PreserveExistingMetadata |
省略可能な Boolean 型のパラメーターです。 True の場合、メタデータがまだ存在しない場合にのみ追加のメタデータを適用します。 |
解説
上記のパラメーター以外に、このタスクは TaskExtension クラスからパラメーターを継承します。このクラス自体は、Task クラスから継承されます。これらの追加のパラメーターの一覧とその説明については、「TaskExtension 基本クラス」を参照してください。
使用例
MySourceItems アイテム コレクションから、MySourceItemsWithMetadata という名前のアイテム コレクションを新規作成するコード例を次に示します。CreateItem タスクで、MySourceItems アイテム内のアイテムを格納した新しいアイテム コレクションが作成されます。次に、値に Hello を設定した MyMetadata という名前のメタデータ エントリを、新しいコレクションの各アイテムに追加します。
タスク実行後の MySourceItemsWithMetadata アイテム コレクションには、file1.resx アイテムおよび file2.resx アイテムが格納され、どちらのアイテムにも MyMetadata というメタデータ エントリが添付されています。MySourceItems アイテム コレクションは変更されません。
<Project xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<MySourceItems Include="file1.resx;file2.resx" />
</ItemGroup>
<Target Name="NewItems">
<CreateItem
Include="@(MySourceItems)"
AdditionalMetadata="MyMetadata=Hello">
<Output
TaskParameter="Include"
ItemName="MySourceItemsWithMetadata"/>
</CreateItem>
</Target>
</Project>
次の表は、タスクの実行後に出力されるアイテムの値を示します。アイテムのメタデータは、アイテムの後にかっこで囲んで示してあります。
アイテム コレクション |
内容 |
---|---|
MySourceItemsWithMetadata |
file1.resx (MyMetadata="Hello") file2.resx (MyMetadata="Hello") |