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.
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 |
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 |
In an effort to limit the impact to users, we will upgrade the NuGet CLI in a phased approach.
- 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.
- 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.