Skip to content

Removing the use of RefPath and binplacing for old frameworks #31844

@Anipik

Description

@Anipik

//edited by @ViktorHofer, copied from #31844 (comment)

Make our non-NetCoreAppCurrent projects behave more like normal SDK projects with respect to references.
Eliminate the use of artifacts\bin\ref as the reference path for all frameworks exception NetCoreAppCurrent. Eliminate the need of depprojs.

Next steps:

  • Enable restore for ref and src projects: Enable restore for ref and src projects in libraries #33242
  • Allow non-NetCoreAppCurrent projects to use implicit shared framework (which requires restore).
  • Add PackageReferences to any project that relies on a package that was previously restored by depprojs. EG: System.Memory for NETStandard2.0. Make sure to use version.props to represent the dependency version: Replace binplace.depproj by inlining PackageReferences #33422
  • Handle references to other live-built libraries. EG: System.Collections.Immutable depends on System.Reflection.Metadata. This could either be done with a projectreference to the reference assembly, or a projectreference to the src assembly.
  • Once done for all projects, delete depprojs that were responsible for building out ref packs. Ideally we can delete all depprojs and just meld whatever remaining restores were happening into toolset restore.

cc @ericstj @ViktorHofer

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions