.NET Core 2.2 was released on December 4, 2018. As a non-LTS (“Current”) release, it is supported for three months after the next release. .NET Core 3.0 was released on September 23, 2019. As a result, .NET Core 2.2 is supported until December 23, 2019.
After that time, .NET Core patch updates will no longer include updated packages of container images for .NET Core 2.2. You should plan your upgrade from .NET Core 2.2 now.
.NET Core 3.1 released December 3, 2019 as a Long-term support release. As a result, .NET Core 3.0, released September 23, 2019 is supported until March 23, 2020.
Upgrade to .NET Core 3.1
The supported upgrade path from .NET Core 2.2 is via .NET Core 3.1. Migrating from 2.2 to 3.1 is straightforward; update the project file to use 3.1 rather than 2.2. The first document below illustrates the process from 2.0 to 2.1. ASP.NET Core 2.2 to 3.1 has additional considerations detailed in the second document.
Microsoft Support Policy
Microsoft has a published support policy for .NET Core. It includes policies for two release types: LTS and Current.
- LTS releases include features and components that have been stabilized, requiring few updates over a longer support release lifetime. These releases are a good choice for hosting applications that you do not intend to update often.
- Current releases include features and components that are new and may undergo future change based on feedback. These releases are a good choice for applications in active development, giving you access to the latest features and improvements. You need to upgrade to later .NET Core releases more often to stay in support.
Both types of releases receive critical fixes throughout their lifecycle, for security, reliability, or to add support for new operating system versions. You must stay up-to-date with the latest patches to qualify for support.
See .NET Core Supported OS Lifecycle Policy to learn about Windows, macOS and Linux versions that are supported for each .NET Core release.
Could you please elaborate on what is meant by “.NET Core 2.2” in this post? Is it just the runtime (“target framework”)? Does it include all Nuget packages starting with “Microsoft.AspNetCore”? Something else? Is EF Core included?
Magnus, yes, it includes everything which was shipped under the .NET Core 2.2 “banner”. This includes AspNetCore, EFCore, the 2.2 .NET Core SDKs and all NuGet packages referenced by the 2.2 shared frameworks (NETCore.App, AspNetCore.App and AspNetCore.All).
Hi Magnus,
This refers to the runtime (target framework) and all associated nuget packages. This ‘runtime’ is inclusive of AspNetCore and EntityFrameworkCore. AspNetCore 2.1 has a special case policy with respect to use from .NET Framework. You can see the details for that scenario at https://dotnet.microsoft.com/platform/support/policy/aspnet and https://dotnet.microsoft.com/platform/support/policy/aspnetcore-2.1.
I am using .Net Core 2.2 on Windows Server 2012 (not R2) servers and now it seems I don't have a viable upgrade path, because .Net Core 3 doesn't run on them?
What now? Because it's not my servers and the customers don't want to upgrade just yet (2012 has extended support until 2023, beyond .Net Core 2.1 LTS, which ends in 2021?)
Downgrade to 2.1 "LTS" and pray they upgrade on time?
Regret my decision to...
Correction: downgrade to .NET Framework…
Yeah you can call it whatever you want, but if my customers insist on running Server 2012 until the extended support ends, it doesn’t seem like I have much of a choice if .Net Core will not be supported on that platform.
I separate my business code from the framework code anyways, so migrating won’t even be a huge undertaking… It’s just a shame I can’t use .Net Core on those projects.
Nice to know that I have to rebuild and test the entire solution again!
For sure this time my boss will let me migrate to C++.
Or you just stay with 2.2 and deploy it with your assembly… It’s not like 2.2 has a time bomb that makes it stop working.