question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Update Package Management to Latest Stable NuGet (4.x)

See original GitHub issue

Summary

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.
  • 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:closed
  • Created 6 years ago
  • Comments:69 (69 by maintainers)

github_iconTop GitHub Comments

2reactions
Barsonaxcommented, Jul 13, 2019

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: image.

The branch can be found here https://github.com/ilexp/NuGet4xTest/tree/Barsonax

Gonna take some work to get all needed functionality though

1reaction
Barsonaxcommented, Apr 21, 2020

Closing this as this issue is no longer relevant since we went for the solution in #786

Read more comments on GitHub >

github_iconTop 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 >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found