RemoveDuplicates (tarea)

Quita los elementos duplicados de la colección de elementos especificada.

Parámetros

En la siguiente tabla se describen los parámetros de la tarea RemoveDuplicates .

Parámetro Descripción
Filtered Parámetro de salida ITaskItem[] opcional.

Contiene una colección de elementos sin elementos duplicados. Se conserva el orden de los elementos de entrada, manteniendo la primera instancia de cada elemento duplicado.
HadAnyDuplicates Parámetro de salida Boolean opcional.

Si se encontraron elementos duplicados de true, false de lo contrario.
Inputs Parámetro ITaskItem[] opcional.

Colección de elementos de la que se van a quitar los elementos duplicados.

Comentarios

Esta tarea no distingue mayúsculas de minúsculas y no compara los metadatos de los elementos al determinar los duplicados.

Además de los parámetros mencionados anteriormente, esta tarea hereda los parámetros de la clase TaskExtension, que a su vez hereda de la clase Task. Para obtener una lista de estos parámetros adicionales y sus descripciones, consulte TaskExtension base class.

Ejemplo

En el ejemplo siguiente se usa la tarea RemoveDuplicates para quitar los elementos duplicados de la colección de elementos MyItems. Cuando la tarea ha finalizado, la colección de elementos FilteredItems contiene un elemento.

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

En el ejemplo siguiente se muestra que la tarea RemoveDuplicates conserva su orden de entrada. Cuando la tarea está completa, la colección de elementos FilteredItems contiene los elementos MyFile2.cs, MyFile1.cs y MyFile3.cs, en ese orden.

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

Vea también