[SBRP] Move back to project-to-project references for arcade-powered source-build · Issue #1690 · dotnet/source-build (original) (raw)

In 3.1, SBRP does something similar to project-to-project references via PackageReferences, nupkgs, and individual dotnet restores per project with very specific package feeds.

In 5.0 (dev branch as of writing), SBRP instead uses prebuilts for PackageReferences. This isn't actually a problem for building from source, because the bootstrap process rebuilds these against source-built artifacts. (It seems reasonable to leave it like this for 5.0 GA if we can't find time to address this.)

We can have the best of both worlds. The projects should build using each other's output DLLs as references, and then each project should package up its outputs. This removes the prebuilts but doesn't require an individual dotnet restore for every single project. ProjectReference is designed to do this kind of thing. (An early attempt to use ProjectReference didn't work out, leading to the 3.1 approach.)