Skip to content
This repository has been archived by the owner on Nov 16, 2023. It is now read-only.

NuGet improvements to behave more like PackageReference from MSBuild/SDK style project #329

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

abock
Copy link
Contributor

@abock abock commented May 25, 2018

This PR aims to accomplish a few major things:

  • All package operations have restore semantics (initialize, add, remove, etc.), eliminating our flawed install process (which was layered on top of initial restore) and our practically ignored removal process (we effectively only removed a package from the UI/manifest).

  • Support RIDs, and notably, gather native library dependencies directly out of NuGet.

  • Improved tests. We had decent regression tests for NuGet, but add some better general functionality unit tests as well. Implement tests that compare MSBuild/PackageReference directly with our support.

@abock abock force-pushed the nuget-restore-all-the-things branch 2 times, most recently from 024b5ff to bfe3f2a Compare May 25, 2018 17:19
abock added 9 commits May 29, 2018 20:17
This effort removes the custom install logic we had and instead
turns install and remove operations into full restore operations
as well.

Install and remove now simply add or remove packages from the current
list of installed packages and then performs a restore against that
updated list.

This should better match PackageReference behavior with MSBuild and
should allow us to remove even more code in other layers in subsequent
commits.

In order to handle package fixups that we need to apply (notably,
Xamarin.Forms pinning), we simply check the package list after
install, perform any fixups against the list, and restore again,
until no fixups were applied. This means that in some cases, multiple
restores need to happen, but they're quick, and apply only when fixups
are needed.
Untangling all the local variables into a single expression for restore.
Much easier to read and reason about but I'm sure some will hate it.
Not useful/complete yet, but this will allow us to add test MSBuild
SDK style projects using PackageReference and compare the NuGet restore
output for analogous workbooks using our InteractivePackageManager to
do the same restore.
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant