Skip to content

BuildAcceleration: Incorrect files copied when DisableTransitiveProjectReferences is true #9757

@janthomasQS

Description

@janthomasQS

Visual Studio Version

17.14.12

Summary

When DisableTransitiveProjectReferences is enabled BuildAcceleration will copy more files to the output than a call to msbuild does.
Msbuild does not copy transitive dependencies that are not referenced statically in the dependency graph of the direct dependencies when DisableTransitiveProjectReferences is enabled . When build acceleration is enabled these files get copied anyways

Steps to Reproduce

  1. Clone my repo: https://github.com/janthomasQS/BuildAccelerationRepro
  2. Build the solution with VS. the first build will consider all projects out of date and call msbuild for all of them
  3. Observe the build output of BuildAccelRepro.csproj : IndirectDependency.dll does not exist in the output
  4. Build another time in VS
  5. VS will now copy IndirectDependency.dll into the output of BuildAccelRepro.csproj

Expected Behavior

Build acceleration should copy the same files as a call to msbuild does.

Actual Behavior

More files are copied.

User Impact

Using BuildAcceleration changes the build output result and might therefore change behaviour.

Metadata

Metadata

Assignees

Labels

Feature-Build-AccelerationBuild Acceleration can skip calls to MSBuild within Visual Studio

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions