Compartilhar via


Tarefa RemoveDuplicates

Remove itens duplicados da coleção do item especificado.

Parâmetros

A tabela a seguir descreve os parâmetros da tarefa RemoveDuplicates.

Parâmetro Descrição
Filtered Parâmetro de saída ITaskItem[] opcional.

Contém uma coleção de itens com todos os itens duplicados removidos. A ordem dos itens de entrada é preservada, mantendo a primeira instância de cada item duplicado.
HadAnyDuplicates Parâmetro de saída Boolean opcional.

Se true duplicados forem encontrados; caso contrário, false.
Inputs Parâmetro opcional ITaskItem[].

Coleção de itens do qual remover itens duplicados.

Comentários

Esta tarefa não diferencia maiusculas de minúsculas e não compara os metadados do item ao determinar as duplicatas.

Além dos parâmetros listados acima, essa tarefa herda parâmetros da classe TaskExtension, que herda da classe Task. Para obter uma lista desses parâmetros adicionais e suas descrições, confira Classe base TaskExtension.

Exemplo

O exemplo a seguir usa a tarefa RemoveDuplicates para remover itens duplicados da MyItems coleção de itens. Quando a tarefa for concluída, a coleção de item FilteredItems contém um item.

<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>

O exemplo a seguir mostra que a tarefa RemoveDuplicates preserva a ordem de entrada. Após a conclusão da tarefa, a coleção de itens FilteredItems conterá os itens MyFile2.cs, MyFile1.cs e MyFile3.cs, nessa ordem.

<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>

Confira também