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>

関連項目