Build Acceleration gathers items to copy from referenced files, transitively. Each copy item includes a relative path, to which the file should be copied (relative to the output path of the project being built).
It's possible for multiple projects to specify copy items with the same relative target path. When this occurs, only one file will end up in the output directory at that location. The exact rules defining which file "wins" in this case are complex. The situation is relatively rare however.
This change makes Build Acceleration disable itself in cases where duplicate relative target paths exist. The project will fall back to calling MSBuild so that the correct behaviour is guaranteed.
Note to reviewers: There are some small cleanup commits that make the overall diff a little cluttered. The core change here is in 97539d8c73c8714b5f25ed13babd3dac70463d83.
Fixes #9001
Build Acceleration gathers items to copy from referenced files, transitively. Each copy item includes a relative path, to which the file should be copied (relative to the output path of the project being built).
It's possible for multiple projects to specify copy items with the same relative target path. When this occurs, only one file will end up in the output directory at that location. The exact rules defining which file "wins" in this case are complex. The situation is relatively rare however.
This change makes Build Acceleration disable itself in cases where duplicate relative target paths exist. The project will fall back to calling MSBuild so that the correct behaviour is guaranteed.
Note to reviewers: There are some small cleanup commits that make the overall diff a little cluttered. The core change here is in 97539d8c73c8714b5f25ed13babd3dac70463d83.
Microsoft Reviewers: Open in CodeFlow