You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
description: Learn about releases, patches, and support for .NET 5+ (including .NET Core) and later versions.
4
-
ms.date: 03/18/2022
4
+
ms.date: 7/15/2022
5
5
ms.topic: overview
6
6
ms.author: tdykstra
7
7
author: tdykstra
8
8
---
9
-
# Releases and support for .NET (.NET 5+ and .NET Core)
9
+
# Releases and support for .NET
10
10
11
-
Microsoft ships major releases, minor releases, and servicing updates (patches) for .NET 5 (and .NET Core) and later versions. This article explains release types, servicing updates, SDK feature bands, support periods, and support options.
11
+
This article describes release types, servicing updates, SDK feature bands, support periods, and support options for .NET.
12
12
13
-
## Release types
14
-
15
-
Information about the type of each release is encoded in the version number in the form *major.minor.patch*.
16
-
17
-
For example:
18
-
19
-
* .NET 5 and NET 6 are major releases.
20
-
* .NET Core 3.1 is the first minor release after the .NET Core 3.0 major release.
21
-
* .NET Core 5.0.15 is the fifteenth patch for .NET 5.
22
-
23
-
### Major releases
24
-
25
-
Major releases include new features, new public API surface area, and bug fixes. Examples include .NET 5 and .NET 6. Due to the nature of the changes, these releases are expected to have breaking changes. Major releases install side by side with previous major releases.
26
-
27
-
### Minor releases
28
-
29
-
Minor releases also include new features, public API surface area, and bug fixes, and may also have breaking changes. An example is .NET Core 3.1. The difference between these and major releases is that the magnitude of the changes is smaller. An application upgrading from .NET Core 3.0 to 3.1 has a smaller jump to move forward. Minor releases install side by side with previous minor releases.
30
-
31
-
### Servicing updates
32
-
33
-
Servicing updates (patches) ship almost every month, and these updates carry both security and non-security bug fixes. For example, .NET 5.0.8 is the eighth update for .NET 5. When these updates include security fixes, they're released on "patch Tuesday", which is always the second Tuesday of the month. Servicing updates are expected to maintain compatibility. Starting with .NET Core 3.1, servicing updates are upgrades that remove the preceding update. For example, the latest servicing update for 3.1 removes the previous 3.1 update upon successful installation.
34
-
35
-
### Feature bands (SDK only)
36
-
37
-
Versioning for the .NET SDK works slightly differently from the .NET runtime. To align with new Visual Studio releases, .NET SDK updates sometimes include new features or new versions of components like MSBuild and NuGet. These new features or components may be incompatible with the versions that shipped in previous SDK updates for the same major or minor version.
13
+
## Release cadence
38
14
39
-
To differentiate such updates, the .NET SDK uses the concept of feature bands. For example, the first .NET 5 SDK was 5.0.100. This release corresponds to the 3.1.1xx *feature band*. Feature bands are defined in the hundreds groups in the third section of the version number. For example, 5.0.101 and 5.0.201 are versions in two different feature bands while 5.0.101 and 5.0.199 are in the same feature band. When .NET SDK 5.0.101 is installed, .NET SDK 5.1.100 is removed from the machine if it exists. When .NET SDK 5.0.200 is installed on the same machine, .NET SDK 5.0.101 isn't removed.
15
+
New major .NET versions are released annually in November, at [.NET Conf](https://www.dotnetconf.net/).
40
16
41
-
### Runtime roll-forward and compatibility
42
-
43
-
Major and minor updates install side by side with previous versions. An application built to target a specific *major.minor* version continues to use that targeted runtime even if a newer version is installed. The app doesn't automatically roll forward to use a newer *major.minor* version of the runtime unless you opt in for this behavior. An application that was built to target .NET Core 3.0 doesn't automatically start running on .NET Core 3.1. We recommend rebuilding the app and testing against a newer major or minor runtime version before deploying to production. For more information, see [Framework-dependent apps roll forward](versions/selection.md#framework-dependent-apps-roll-forward) and [Self-contained deployment runtime roll forward](deploying/runtime-patch-selection.md).
44
-
45
-
Servicing updates are treated differently from major and minor releases. An application built to target .NET 5.0.0 runs on the 5.0.0 runtime by default. It automatically rolls forward to use a newer 5.0.1 runtime when that servicing update is installed. This behavior is the default because we want security fixes to be used as soon as they're installed without any other action needed. You can opt out from this default roll forward behavior.
46
-
47
-
## .NET version lifecycles
48
-
49
-
.NET Core, .NET 5, and later versions adopt the [modern lifecycle](/lifecycle/policies/modern) rather than the [fixed lifecycle](/lifecycle/policies/fixed) that has been used for .NET Framework releases. Products with fixed lifecycles provide a long fixed period of support, for example, 5 years of mainstream support and another 5 years of extended support. Mainstream support includes security and non-security fixes, while extended support provides security fixes only. Products that adopt a modern lifecycle have a more service-like support model, with shorter support periods and more frequent releases.
50
-
51
-
### Release tracks
17
+
Patch updates are released monthly on the second tuesday of each month, also known as Patch Tuesday.
52
18
53
-
There are two support tracks for releases:
19
+
Minor versions of the .NET SDK are releases approximately quarterly. These are known as [feature bands](#feature-bands-sdk-only).
54
20
55
-
**Current* releases
56
-
57
-
These versions are supported until six months after the next major or minor release ships. Previously (.NET Core 3.0 and earlier), these releases were supported for only three months after the next major or minor release shipped.
58
-
59
-
Example:
21
+
## Release types
60
22
61
-
* .NET Core 3.0 shipped in September 2019 and was followed by .NET Core 3.1 in December 2019.
62
-
* .NET Core 3.0 support ended in March 2020, 3 months after 3.1 shipped.
23
+
Each .NET release is defined as either **Short Term Support (STS)** or **Long Term Support (LTS)**, at the beginning of the release.
63
24
64
-
**Long Term Support* (LTS) releases
25
+
The release types:
65
26
66
-
These versions are supported for a minimum of 3 years, or 1 year after the next LTS release ships if that date is later.
27
+
***STS** releases are supported for eighteen months, released in even-numbered years. They are intended for users that want to take advantage of the newest features and improvements and to stay on the leading edge of .NET innovation.
28
+
***LTS** releases are supported for three years, released in odd-numbered years. They are intended for users that want the stability and lower cost of maintaining an application for an extended period, only needing to upgrade their .NET version for security patches.
67
29
68
-
Example:
30
+
Note: **STS** releases were previously called **Current**.
69
31
70
-
* .NET Core 3.1 is an LTS release and was released in December 2019. It's supported for 3 years, until December, 2022.
71
-
* .NET 5 is a Current release and was released in November 2020. It's supported for 18 months, until May, 2022.
72
-
* .NET 6 is an LTS release and was released in November, 2021. It's supported for 3 years, until November, 2024.
32
+
LTS and STS releases differ only by support duration. The .NET team follows the same software engineering and release processes for both release types, including for security, compatibility, and reliability. Both releases may contain major new features and breaking changes. The .NET team aspires to enable straightforward migration from one release to another, independent of release type.
73
33
74
-
Releases alternate between LTS and Current, so it's possible for an earlier release to be supported longer than a later release. For example, .NET Core 3.1 is an LTS release with support through December 2022. The .NET 5 release shipped almost a year later but goes out of support earlier, in May 2022.
34
+
## Support phases
75
35
76
-
Servicing updates ship monthly and include both security and non-security (reliability, compatibility, and stability) fixes. Servicing updates are supported until the next servicing update is released. Servicing updates have runtime roll forward behavior. That means that applications default to running on the latest installed runtime servicing update.
36
+
.NET releases go through multiple support phases, with varying support levels.
77
37
78
-
## How to choose a release
38
+
***Preview** releases are not supported but are offered for public testing and for the opportunity to give feedback.
39
+
***Go-live** support enables users to deploy a pre-release build in production, and are supported by Microsoft. These are typically Release Candidate (RC) releases.
40
+
***Active** support is provided for the majority of the period after a release is Generally Available (GA). Functional and security improvements will be provided, including support for new operating system versions.
41
+
***Maintenance** support is provided for the last six months of support. Improvements are limited to security fixes. Support for new operating system versions will be provided on a best-effort basis.
42
+
***End-of-life (EOL)** marks the point where a release is no longer supported.
79
43
80
-
If you're building a service and expect to continue updating it on a regular basis, then a Current release like .NET 5 may be your best option to stay up to date with the latest features .NET has to offer.
44
+
.NET uses the [modern lifecycle](/lifecycle/policies/modern) for support and servicing. It is also used for .NET Framework.
81
45
82
-
If you're building a client application that will be distributed to consumers, stability may be more important than access to the latest features. Your application might need to be supported for a certain period before the consumer can upgrade to the next version of the application. In that case, an LTS release like .NET 6 might be the right option.
46
+
[Support for various operating systems](https://github.com/dotnet/core/blob/main/os-lifecycle-policy.md) is defined for each release.
83
47
84
-
### Servicing updates
48
+
##Product behavior
85
49
86
-
.NET servicing updates are supported until the next servicing update is released. The release cadence is monthly.
50
+
Some .NET behaviors are affected by product version.
87
51
88
-
You need to regularly install servicing updates to ensure that your apps are in a secure and supported state. For example, if the latest servicing update for .NET 5 is 5.0.8 and we ship 5.0.9, then 5.0.8 is no longer the latest. The supported servicing level for .NET 5 is then 5.0.9.
52
+
### Runtime roll-forward and compatibility
89
53
90
-
For information about the latest servicing updates for each major and minor version, see the [.NET downloads page](https://dotnet.microsoft.com/download/dotnet).
54
+
All .NET updates install side-by-side with previous versions. An application built to target a specific *major.minor* version continues to use that targeted runtime even if a newer version is installed. The app doesn't automatically roll forward to use a newer *major.minor* version of the runtime unless you opt in for this behavior. An application that was built to target .NET 6 won't automatically start running on .NET 7.
91
55
92
-
## End of support
56
+
We recommend rebuilding apps and testing them with a newer major runtime version before deploying to production. For more information, see [Framework-dependent apps roll forward](versions/selection.md#framework-dependent-apps-roll-forward) and [Self-contained deployment runtime roll forward](deploying/runtime-patch-selection.md).
93
57
94
-
End of support refers to the date after which Microsoft no longer provides fixes, updates, or technical assistance for a product version. Before this date, make sure you have moved to using a supported version. Versions that are out of support no longer receive security updates that protect your applications and data.
58
+
Servicing updates are treated differently from major releases. An application built to target .NET 6.0.0 will automatically roll-forward to use a newer patch -- like 6.0.1 -- when that servicing update is installed.
95
59
96
-
## Supported operating systems
60
+
## Feature bands (SDK only)
97
61
98
-
.NET 5 (and .NET Core) and later versions can be run on a range of operating systems. Each of these operating systems has a lifecycle defined by its sponsor organization (for example, Microsoft, Red Hat, or Apple). We take these lifecycle schedules into account when adding and removing support for operating system versions.
62
+
Versioning for the .NET SDK works slightly differently from the .NET runtime. To align with new Visual Studio releases, .NET SDK updates sometimes include new features or new versions of components like MSBuild and NuGet.
99
63
100
-
When an operating system version goes out of support, we stop testing that version and providing support for that version. Users need to move forward to a supported operating system version to get support.
64
+
To differentiate such updates, the .NET SDK uses the concept of feature bands. For example, the first .NET 6 SDK was `6.0.100`. The second one was `6.0.200`.Feature bands are defined in the hundreds groups in the third section of the version number. For example, 6.0.101 and 6.0.200 are versions in two different feature bands while 6.0.101 and 6.0.199 are in the same feature band.
101
65
102
-
For more information, see the [.NET OS Lifecycle Policy](https://github.com/dotnet/core/blob/main/os-lifecycle-policy.md).
66
+
.NET SDK installers are programmed to maintain one version per feature band. For example, when .NET SDK 6.0.101 is installed, .NET SDK 6.0.100 is removed from the machine if it exists. When .NET SDK 6.0.200 is installed on the same machine, .NET SDK 6.0.101 isn't removed.
103
67
104
68
## Get support
105
69
106
-
You have a choice between Microsoft assisted support and Community support.
70
+
You can get support from Microsoft and the community.
107
71
108
72
### Microsoft support
109
73
@@ -113,8 +77,4 @@ You need to be on a supported servicing level (the latest available servicing up
113
77
114
78
### Community support
115
79
116
-
For community support, see the [Community page](https://dotnet.microsoft.com/platform/community).
117
-
118
-
## See also
119
-
120
-
For more information, including supported date ranges for each version of .NET, see the [Support Policy](https://dotnet.microsoft.com/platform/support/policy/dotnet-core).
80
+
For community support, see [dotnet/core](https://github.com/dotnet/core) or our [Community page](https://dotnet.microsoft.com/platform/community).
0 commit comments