This repository was 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
abock wants to merge 9 commits intomicrosoft:masterfrom
Open
NuGet improvements to behave more like PackageReference from MSBuild/SDK style project#329abock wants to merge 9 commits intomicrosoft:masterfrom
abock wants to merge 9 commits intomicrosoft:masterfrom
Conversation
024b5ff to
bfe3f2a
Compare
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.
bfe3f2a to
2a9e9f9
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.