Skip to content

Unexpected duplicate items #7714

Open
Open
@JVimes

Description

@JVimes

Issue Description

In the Dependency target below, OutFiles is what I expect. But its content is duplicated when accessed in the Primary target.

The issue goes away if I remove the Input and Output attributes.

Issue.targets:

<Project DefaultTargets="Primary">

    <ItemGroup>
        <InFiles Include="A.in;B.in" />
    </ItemGroup>

    <Target Name="Primary"
            DependsOnTargets="Dependency">
        <Message Text="In Primary target.    OutFiles: @(OutFiles)" Importance="high" />
    </Target>

    <Target Name="Dependency"
            Inputs="@(InFiles)"
            Outputs="@(InFiles->'%(filename).out')">
        <ItemGroup>
            <OutFiles Include="*.out" />
        </ItemGroup>
        <Message Text="In Dependency target. OutFiles: @(OutFiles)" Importance="high" />
    </Target>

</Project>

Output:

PS> dotnet build Issue.targets --nologo

  In Dependency target. OutFiles: A.out;B.out
  In Primary target.    OutFiles: A.out;B.out;A.out;B.out

Steps to Reproduce

Here's a working example, since it may depend on file time stamps:
MSBuildIssue.zip

Unzip and run dotnet build Issue.targets.

Expected Behavior

  In Dependency target. OutFiles: A.out;B.out
  In Primary target.    OutFiles: A.out;B.out

Actual Behavior

  In Dependency target. OutFiles: A.out;B.out
  In Primary target.    OutFiles: A.out;B.out;A.out;B.out

Versions & Configurations

msbuild.exe

  • Microsoft (R) Build Engine version 17.3.0-preview-22277-01+f1dae6ab6 for .NET Framework
    17.3.0.27701

dotnet.exe

  • 6.0.400-preview.22301.10

Metadata

Metadata

Assignees

No one assigned

    Labels

    Area: LanguageIssues impacting the MSBuild programming language.bugtriaged

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions