RemoveDuplicates タスク
指定されたアイテム コレクションから、重複するアイテムを削除します。
パラメーター
RemoveDuplicates
タスクのパラメーターの説明を次の表に示します。
パラメーター | 説明 |
---|---|
Filtered |
省略可能な ITaskItem[] 型の出力パラメーターです。すべての重複する項目が削除された項目コレクションが含まれます。 入力項目の順序は保持され、重複する各項目は最初のインスタンスが保持されます。 |
HadAnyDuplicates |
省略可能な Boolean 型の出力パラメーターです。重複する項目が見つかった場合は true 、それ以外の場合は false となります。 |
Inputs |
省略可能な ITaskItem[] 型のパラメーターです。重複した項目を削除する対象となる項目コレクションです。 |
解説
このタスクでは大文字と小文字が区別されず、重複の判断時、項目メタデータは比較されません。
上記のパラメーター以外に、このタスクは TaskExtension クラスからパラメーターを継承します。このクラス自体は、Task クラスから継承されます。 これらの追加のパラメーターの一覧とその説明については、「TaskExtension Base Class」を参照してください。
例
次の例では、RemoveDuplicates
タスクを使用し、MyItems
項目コレクションから重複項目を削除します。 タスクが完了すると、FilteredItems
項目コレクションに含まれる項目が 1 つになります。
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<MyItems Include="MyFile.cs"/>
<MyItems Include="MyFile.cs">
<Culture>fr</Culture>
</MyItems>
<MyItems Include="myfile.cs"/>
</ItemGroup>
<Target Name="RemoveDuplicateItems">
<RemoveDuplicates
Inputs="@(MyItems)">
<Output
TaskParameter="Filtered"
ItemName="FilteredItems"/>
</RemoveDuplicates>
</Target>
</Project>
RemoveDuplicates
タスクが入力順を保持する例を次に示します。 タスクが完了すると、FilteredItems
項目コレクションには、 MyFile2.csMyFile1.cs および MyFile3.cs の順に項目が含まれます。
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<MyItems Include="MyFile2.cs"/>
<MyItems Include="MyFile1.cs" />
<MyItems Include="MyFile3.cs" />
<MyItems Include="myfile1.cs"/>
</ItemGroup>
<Target Name="RemoveDuplicateItems">
<RemoveDuplicates
Inputs="@(MyItems)">
<Output
TaskParameter="Filtered"
ItemName="FilteredItems"/>
<Output
TaskParameter="HadAnyDuplicates"
PropertyName="_HadAnyDuplicates"/>
</RemoveDuplicates>
</Target>
</Project>