RemoveDuplicates 任务

从指定的项集合中删除重复的项。

参数

下表描述了 RemoveDuplicates 任务的参数。

参数 说明
Filtered 可选的 ITaskItem[] 输出参数。

包含删除了所有重复项的项集合。 输入项的顺序被保留,保留每个复制项的第一个实例。
HadAnyDuplicates 可选 Boolean 输出参数。

如果为 true,则表示找到重复项,否则为 false
Inputs 可选 ITaskItem[] 参数。

要从中删除重复项的项集合。

注解

此任务不区分大小写,并且在确定重复项时不比较项元数据。

除上面列出的参数外,此任务还从 TaskExtension 类继承参数,后者自身继承自 Task 类。 有关这些其他参数的列表及其说明的信息,请参阅 TaskExtension 基类

示例

以下示例使用 RemoveDuplicates 任务从 MyItems 项集合中删除重复项。 任务完成后,FilteredItems 项集合包含一个项。

<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.cs、MyFile1.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>

另请参阅