.NET 5.0 will reach End of Support on May 10, 2022

Rahul Bhandari (MSFT)

5/9/2022: this post was updated to correct the end of support date for .NET 5 from May 8 to May 10. 

.NET 5.0 will reach end of support on May 10, 2022. After the .NET May updates, Microsoft will no longer provide servicing updates, including security fixes or technical support, for .NET 5.0. You’ll need to update the version of .NET you’re using to a supported version (.NET 6.0) before this date in order to continue to receive updates.

Support Policy

.NET 5.0 is not an LTS release and is therefore supported for 18 months, or 6 months after the next release ships, whichever is longer. .NET 5.0 support will end on May 10, 2022.

When .NET 5.0 reaches end of support, applications that use this version will continue to run. That said, we won’t issue security updates for .NET 5.0 starting in May 2022 when we issue security updates for supported versions of .NET, which will be .NET Core 3.1 and .NET 6.0. This means that if a computer has .NET 5.0 installed, it may be potentially unsecure. Additionally, if you run into any issues and need technical support, we may not be able to help you.

Update your application

If you’re an end user, we recommend reaching out to the vendor managing your software to confirm whether an updated version of the software is needed and available. The remainder of this post is applicable to software vendors and developers.

If your application uses NET 5.0, we strongly recommend you migrate your application to .NET 6.0 – a supported LTS version. You can download .NET 6.0 from the .NET website.

Upgrading to .NET 6.0

  • Open the project file (the .csproj, .vbproj, or *.fsproj file).
  • Change the target framework value from net5.0 to net6.0. The target framework is defined by the or element.
  • For example, change net5.0 to net6.0. You may also want to review the .NET 6 Compatibility Guide.

    Update your development environment

In addition to the software you ship to your customers, the computer you use for development may have .NET 5.0 installed – either standalone or installed by Visual Studio.

You can check for stand-alone installations of .NET 5.0 from the command line. On a Windows computer, open a Command Prompt and go to %ProgramFiles%dotnet folder. On macOS or Linux, open a terminal window.

Then type the following command: dotnet –list-runtimes

image

If you use Visual Studio 2019 16.11 or 16.9 or 16.7, then based on the workloads installed, you may also have .NET 5.0 installed as a required component of Visual Studio and you need to be aware of some relevant changes that are coming.

image image

Starting with the June 2022 servicing update for Visual Studio 2019 16.11 and Visual Studio 2019 16.9, the .NET 5.0 component in Visual Studio will be changed to out of support and optional. This means that workloads in Visual Studio may be installed without installing .NET 5.0. Note that existing installations won’t be affected and any previously installed workload and component will remain installed until the component or workload is unselected in Visual Studio setup. While it’s possible for you to re-select this optional component in Visual Studio and re-install this, we strongly recommend you use .NET 6.0 with Visual Studio 2022 to build apps that run on a supported .NET runtime.

Note: If you’re migrating an app to .NET 6.0, some breaking changes might affect you. We recommend you to go through the compatibility check.

Note: The .NET 5.0 SDK versions will continue to be supported in VS 16.11 until December of 2022 when .NET Core 3.1 goes out of support so that .NET Core 3.1 customers can continue to use 16.11 to developer their applications. This .NET 5.0 SDK will not use the .NET 5.0 runtime when running command line scenarios and will not be shipped as a stand-alone SDK.

Closing

.NET 5.0 will be reaching end of support on May 10 and after the .NET May 2022 updates we will no longer provide updates including security fixes, or technical support for this version. We strongly recommend you migrate your applications to .NET 6.0.

15 comments

Leave a comment

  • Jason Baginski

    How does one uninstall an sdk and framework left over after moving to VS2022?

    Once I read this post, I was a little shocked to see

    Microsoft.AspNetCore.All 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.All]
    Microsoft.AspNetCore.App 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
    Microsoft.AspNetCore.App 3.1.1 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
    Microsoft.AspNetCore.App 3.1.2 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
    Microsoft.AspNetCore.App 3.1.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
    Microsoft.AspNetCore.App 3.1.6 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
    Microsoft.AspNetCore.App 3.1.8 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
    Microsoft.AspNetCore.App 3.1.17 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
    Microsoft.AspNetCore.App 6.0.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
    Microsoft.NETCore.App 2.2.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 3.1.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 3.1.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 3.1.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 3.1.8 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 3.1.17 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 6.0.2 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.NETCore.App 6.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
    Microsoft.WindowsDesktop.App 3.1.6 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
    Microsoft.WindowsDesktop.App 6.0.2 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
    Microsoft.WindowsDesktop.App 6.0.3 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

    and

    3.1.302 [C:\Program Files\dotnet\sdk]
    5.0.300 [C:\Program Files\dotnet\sdk]
    6.0.201 [C:\Program Files\dotnet\sdk]

    Since 3.1/5.0 don’t show up in Settings->Apps nor Control Panel->Programs and Features and certainly aren’t selected when I load up Visual Studio Installer and click Modify to see what I have selected for VS2022.

    Picking up the dotnet-core-uninstall gives me this:

    This tool cannot uninstall versions of the runtime or SDK that are 
    – SDKs installed using Visual Studio 2019 Update 3 or later.
    – SDKs and runtimes installed via zip/scripts.
    – Runtimes installed with SDKs (these should be removed by removing that SDK).
    The versions that can be uninstalled with this tool are:

    .NET Core SDKs:

    .NET Core Runtimes:

    ASP.NET Core Runtimes:

    .NET Core Runtime & Hosting Bundles:

    So, I assume that when I installed VS2022 and uninstalled VS2019 that these bits got orphaned in some fashion.

  • John King

    just make the runtime to be “native embed” like a static link library please

    and then nobody care about your “support lifetime”.

  • Michael Taylor

    While I understand MS’s plan to follow an Android/Chrome/Firefox model of only supporting 1 LTS version at a time it does push against what a lot of people use Windows for, stability. Windows isn’t popular just because of the UI but because MS supports their products for years. Android/Apple don’t and, in my opinion, it is because enterprises cannot simply upgrade every year to keep pace and they have mandates to remain on supported products. This is going to ultimately hurt the .NET adoption.

    The thing that really, really annoys me though is that .NET 6 is tied to VS 2022. It is a gimmick to force additional sales of VS (or MSDN subscriptions). .NET 5 is no longer supported and therefore anybody running VS 2019 have no choice but to upgrade to VS 2022 (hope you got software assurance…) in order to continue development. VS has always supported multiple versions of .NET and there is 0 reason to not continue that forward. Requiring VS 2022 for .NET 6 has caused quite a few people I know to put their .NET Core/5 migration on hold and stick with .NET Framework. .NET 7 is a short term release so I would expect it to work with VS 2022 but .NET 8 will be the next LTS (at the moment) so I wouldn’t be surprised if you need VS 2022.vNext to build it as well. Ultimately this is going to force devs to move away from VS in lieu of other IDEs. Better to use a cheap/free IDE and develop current code then to use an expensive IDE and upgrade every couple runtimes.

    • Oscar David Diaz Fortaleché

      That’s why I learned to use VS Code for developing with .NET Core, if you start to learn the commonly used dotnet CLI commands you will notice that you don’t need VS Studio. I think It depends what VS Tools you are using that tie you to the IDE.

        • Someone

          Not only for web development but you can create all projects. However VS Code is the best for web development, console apps (CLI), libraries, tests and so on. The issue could be with GUI part.

  • Jim Foye

    Is there a rush to increase the .NET version number as far away from 4.x as quickly as possible? A cynical person might say this is to make folks who support applications on 4.x feel more and more left behind.

  • Jerry Metcoff

    I’m a software vendor and I have to support my customers, regardless of what they are running. Anywhere from Windows 7 with .NET 4.x and forward. I can’t force potential customers to upgrade systems even if they have lost MS support. We also use a number of 3rd party libraries that aren’t compatible with .NET 6 yet. It seems MS is trying to force us to move forward too quickly.

  • Hannes Fornell

    Is there any information on when VS2022 for Mac will become production ready? We current have a .Net 5 project and use Macs as our development machines. With .Net 5 becoming EoL and VS2022 for Mac not being officially supported for production yet, that leaves us stuck between a rock and a hard place.