dotnet / dotnet/core

Breaking Change to .NET Packages on Winget

Open
#7,428 8 comments 14 reactions 0 assignees View on GitHub
announcement area-winget
Dominant language
PowerShell
Stars
22k
Forks
4.9k
Avg merge
5d 5h
Merged PRs (30d)
29

Description

# Breaking Change to .NET Packages on Winget

The Microsoft .NET team plans to make a set of breaking changes to the .NET packages that are available through the [Windows Package Manager tool](https://docs.microsoft.com/windows/package-manager/winget/) (winget). Existing .NET packages that are currently community maintained will be replaced by new packages with different package identifiers. This new set of packages will be officially supported by the .NET team and conform to a consistent naming convention.

## Removal of Existing Winget Packages

A variety of .NET winget packages have been defined by the community. These are not consistently defined and do not conform to naming and versioning conventions used by the .NET product. These packages should be considered deprecated and will be removed and replaced by packages that are exclusively maintained by the .NET team.

The following packages are deprecated and will be removed:

* [Microsoft.ASPNetCore.5-x64](https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/ASPNetCore/5-x64)
* [Microsoft.ASPNetCore.6-x64](https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/ASPNetCore/6-x64)
* [Microsoft.DotNetWorkload.Android](https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/DotNetWorkload/Android)
* [Microsoft.DotNetWorkload.Ios](https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/DotNetWorkload/Ios)
* [Microsoft.dotnet](https://github.com/microsoft/winget-pkgs/tree/master/manifests/m/Microsoft/dotnet)
* [Microsoft.dotnetHostingBundle](https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/dotnetHostingBundle)
* [Microsoft.dotnetPreview](https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/dotnetPreview)
* [Microsoft.dotnetRuntime.3-x64](https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/dotnetRuntime/3-x64)
* [Microsoft.dotnetRuntime.3-x86](https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/dotnetRuntime/3-x86)
* [Microsoft.dotnetRuntime.5-arm64](https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/dotnetRuntime/5-arm64)
* [Microsoft.dotnetRuntime.5-x64](https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/dotnetRuntime/5-x64)
* [Microsoft.dotnetRuntime.5-x86](https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/dotnetRuntime/5-x86)
* [Microsoft.dotnetRuntime.6-x64](https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/dotnetRuntime/6-x64)
* [Microsoft.dotnetRuntime.6-x86](https://github.com/microsoft/winget-pkgs/blob/master/manifests/m/Microsoft/dotnetRuntime/6-x86)

### Dependencies on Existing Packages

There are a set of packages that have dependencies on the above .NET packages to be removed. To avoid breaking these dependent packages, their dependencies will be updated to the new replacement packages before the deprecated ones are removed.

This is the set of packages which will have their dependencies updated:

* [HandBrake.HandBrake](https://github.com/microsoft/winget-pkgs/blob/master/manifests/h/HandBrake/HandBrake)
* Current Dependencies:
* Microsoft.dotnetRuntime.5-x64
* Microsoft.dotnetRuntime.6-x64
* New Dependencies:
* Microsoft.DotNet.Runtime.5
* Microsoft.DotNet.Runtime.6
* [Iriun.IriunWebcam](https://github.com/microsoft/winget-pkgs/blob/master/manifests/i/Iriun/IriunWebcam)
* Current Dependencies:
* Microsoft.dotnetRuntime.3-x86
* New Dependencies:
* Microsoft.DotNet.Runtime.3_1
* [LINQPad.LINQPad.6](https://github.com/microsoft/winget-pkgs/tree/master/manifests/l/LINQPad/LINQPad/6)
* Current Dependencies:
* Microsoft.dotnetRuntime.3-x64
* New Dependencies:
* Microsoft.DotNet.Runtime.3_1
* [LINQPad.LINQPad.7](https://github.com/microsoft/winget-pkgs/tree/master/manifests/l/LINQPad/LINQPad/7)
* Current Dependencies:
* Microsoft.dotnetRuntime.6-x64
* Microsoft.dotnetRuntime.6-x86
* New Dependencies:
* Microsoft.DotNet.Runtime.6
* [Microsoft.PowerToys](https://github.com/microsoft/winget-pkgs/tree/master/manifests/m/Microsoft/PowerToys)
* Current Dependencies:
* Microsoft.dotnetRuntime.3-x64
* New Dependencies:
* Microsoft.DotNet.Runtime.3_1
* [rocksdanister.LivelyWallpaper](https://github.com/microsoft/winget-pkgs/tree/master/manifests/r/rocksdanister/LivelyWallpaper)
* Current Dependencies:
* Microsoft.dotnetRuntime.3-x86
* New Dependencies:
* Microsoft.DotNet.Runtime.3_1
* [VMware.HorizonClient](https://github.com/microsoft/winget-pkgs/tree/master/manifests/v/VMware/HorizonClient)
* Current Dependencies:
* Microsoft.dotnetRuntime.5-x86
* New Dependencies:
* Microsoft.DotNet.Runtime.5

## New .NET packages

The .NET team will be replacing the previously mentioned community-maintained packages with a new set of packages with different package identifiers. These packages will be maintained by the .NET team and kept up to date as part of each servicing release for each of the supported .NET versions.

These are the package identifiers of the new set of packages to be added:

* Microsoft.DotNet.AspNetCore.3_1
* Microsoft.DotNet.AspNetCore.5
* Microsoft.DotNet.AspNetCore.6
* Microsoft.DotNet.AspNetCore.Preview
* Microsoft.DotNet.DesktopRuntime.3_1
* Microsoft.DotNet.DesktopRuntime.5
* Microsoft.DotNet.DesktopRuntime.6
* Microsoft.DotNet.DesktopRuntime.Preview
* Microsoft.DotNet.HostingBundle.3_1
* Microsoft.DotNet.HostingBundle.5
* Microsoft.DotNet.HostingBundle.6
* Microsoft.DotNet.HostingBundle.Preview
* Microsoft.DotNet.Runtime.3_1
* Microsoft.DotNet.Runtime.5
* Microsoft.DotNet.Runtime.6
* Microsoft.DotNet.Runtime.Preview
* Microsoft.DotNet.SDK.3_1
* Microsoft.DotNet.SDK.5
* Microsoft.DotNet.SDK.6
* Microsoft.DotNet.SDK.Preview

## Implementation Timeline

1. Publish new .NET packages (Date: May 11, 2022)
1. Create PRs to update dependencies to reference the new .NET packages instead of the deprecated ones (Date: May 11, 2022)
1. Remove the deprecated .NET packages (Date: May 18, 2022)

## Package Installation Instructions

In order to avoid compatibility issues, you must clean your machine of any existing .NET winget packages that are [listed for removal](#removal-of-existing-winget-packages) prior to installing the [new .NET packages](#new-net-packages).

Once you've installed the new .NET packages, upgrade will not work for those packages until a new [winget feature](https://github.com/microsoft/winget-cli/issues/980) is available. To work around this issue, you'll need to force an upgrade to the specific version that you want:

```console
winget upgrade --force --version
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.