Skip to content

Instantly share code, notes, and snippets.

@MichaelSimons
Last active January 8, 2021 14:20
Show Gist options
  • Save MichaelSimons/9dcc7e696ef9ea65055320e20265f021 to your computer and use it in GitHub Desktop.
Save MichaelSimons/9dcc7e696ef9ea65055320e20265f021 to your computer and use it in GitHub Desktop.
Proposed policy change for the NuGet CLI version included in the sdk images

Proposed policy change for the NuGet CLI version included in the sdk images

We are proposing a policy change for which NuGet CLI (i.e. NuGet.exe) version is included in the sdk images. The proposal is to align the NuGet CLI version with the version of NuGet bundled within MSBuild and the .NET CLI included in the sdk images.

If you are using the NuGet CLI you may be impacted by this change. If you are using NuGet via MSBuild or the .NET CLI you will not be affected by this change.

Details

Current Policy

The NuGet CLI version varies for each version of Windows. The included NuGet CLI version is the most recent version at the time of the intial Windows release. The NuGet CLI does get patch updates as they are released.

We originally chose this policy because we thought it was the lowest risk of introducing breaking changes. The current policy however causes compatibility issues. In order to maintain compatibility between the NuGet CLI, MSBuild and the .NET CLI, the versions need to be the same. Examples of these compatibility issues include:

Windows Version NuGet CLI Version
windowsservercore-20H2 5.7.0
windowsservercore-2004 5.5.1
windowsservercore-1909 5.3.1
windowsservercore-ltsc2019 4.9.4
windowsservercore-ltsc2016 4.9.4

Proposed Policy

Align the NuGet CLI version with with the version of NuGet bundled within MSBuild and the .NET CLI. The version of NuGet included in MSBuild and the .NET CLI is upgraded overtime as VS is serviced. Therefore the NuGet CLI version will also get upgraded over time.

Windows Version NuGet CLI Version
windowsservercore-20H2 5.8.0
windowsservercore-2004 5.8.0
windowsservercore-1909 5.8.0
windowsservercore-ltsc2019 5.8.0
windowsservercore-ltsc2016 5.8.0

Migration Plan

In an effort to limit the impact to users, we will upgrade the NuGet CLI in a phased approach.

  1. January 2021 - Add the latest NuGet version to all sdk images. After this, each sdk image will contain two versions. The PATH variable will continue to reference the old version. This will allow users who need the new version to easily make use of it.
  2. February 2021 - Remove the old NuGet version from the sdk images and update the PATH variable to reference the new version. At this point there will only be one version of NuGet within the sdk images. Users who need a different version will have to add the version they depend.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment