Skip to content

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

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions