Update Package Management to Latest Stable NuGet (4.x)
See original GitHub issueSummary
As a prerequisite of issue #573, a NuGet update will be required. Regardless of this requirement, updating to the latest NuGet for package management is overdue, considering that Duality is still using 2.12, while 4.x has been out for a while.
Analysis
- Check out the new NuGet client package.
- The package manager classes and tests need to be updated. This will likely be the biggest work item.
- Address API and behavior changes.
- Make sure it can consume both Duality packages and regular NuGet library packages.
- Deal with platform-dependent dependencies and files.
- Consider writing some more unit tests for this.
- Consider moving it to a separate project (still part of the Duality editor package in deployment though) to keep direct editor dependencies clean.
- Investigate whether the nightly build needs to be updated.
- It uses command line nuget, probably the system installed version.
- Check out which version is used on the CI build and locally on the dev machine.
- Might be okay as-is, but double-check the used nuget version for publishing packages, as it will soon be required to use the newest one.
- All
.nuspec
files might need to be updated - or they might not. Investigate this.- Keep the changes minimal, only do what is required to make and keep them consumable when switching to
netstandard1.1
later on. - Create a test project that lets VS 2017 export a
netstandard1.1
nuget package and see what the spec says. Especially the framework paths for files and dependencies should be interesting. - Make sure they’re still as compatible as possible. Don’t use features that aren’t required.
- If changes are required, will need to update dependencies as well, including OpenTK, FarseerDuality, AdamsLair.Winforms, etc.
- Keep the changes minimal, only do what is required to make and keep them consumable when switching to
- Backwards compatibility is key. Don’t require a new NuGet for building a package that doesn’t need its features.
- Due to the big new set of NuGet-related dependencies, update the
Publish Game
script copy blacklist, as well as potentially existing.gitignore
files and nightly builder binary package config. - Consider adding an updated
.gitignore
file to the binary release package by default.
Issue Analytics
- State:
- Created 6 years ago
- Comments:69 (69 by maintainers)
Top Results From Across the Web
Reinstalling and Updating NuGet Packages
Package Manager UI, On the Updates tab, select one or more packages and select Update, On the Installed tab, select a package, record...
Read more >NuGet CLI update command
Updates all packages in a project (using packages.config ) to their latest available versions. It is recommended to run 'restore' before running ...
Read more >c# - How to Update All Packages of solution to Latest Minor ...
Stick together with minor versions of updated packages, in the entire solution. Ideally Update-Package should do but that command will pick up ...
Read more >Updating NuGet packages from command-line - deep dive
Right-click Dependencies and select Manage NuGet Packages... to access ... NuGet package you are trying to update and input the new version:.
Read more >Four Strategies for Updating NuGet Packages - Marc Roussy
The Consolidate tab is the most useful feature of Package Manager. It lets you quickly fix any package versions that aren't in alignment, ......
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Started working on a nuget v5.1 implementation for duality (yup thats the latest version currently) based on findings in https://martinbjorkstrom.com/posts/2018-09-19-revisiting-nuget-client-libraries
The good part is that it correctly resolves dependencies as can be seen here: .
The branch can be found here https://github.com/ilexp/NuGet4xTest/tree/Barsonax
Gonna take some work to get all needed functionality though
Closing this as this issue is no longer relevant since we went for the solution in #786