.NET Support Dates
Once in a while, I want to know which versions of .NET are currently officially supported. Unfortunately, it may be hard to figure this out from the official Microsoft documentation. So I've decided to collect this information in this post. I intend to update this information when new .NET versions come out in the future, and with more precise dates if they're available.
This post will help you to determine whether a particular .NET version has any kind of official support from Microsoft (and thus if you should consider support in your software).
Please note that this post shouldn't be used as a legal or technical advice of any sort; always refer to the original documents published by Microsoft (I'm adding the links specifically for this).
Date of last update of this information: 2021-04-10.
I wasn't able to find any sources for actual .NET Framework 3.5 support dates. Lifecycle FAQ sends the reader to the Lifecycle Policy document, which hasn't listed .NET Framework 3.5 as a separate entry. The clarification on the support life cycle lists it as unsupported, though it has no dates:
The original version of the .NET Framework 3.5 together with the .NET Framework 2.0 SP1 and the .NET Framework 3.0 SP1 are no longer in support.
The first recorded date of this document being publicly available is 2012-06-23 (see the Internet Archive).
According to the Lifecycle FAQ, certain .NET Framework versions (all starting from .NET Framework 4.5.2) are considered as parts of the corresponding operating systems, and thus have the same mainstream/extended support dates as the operating systems. For these versions, I've chosen the ones with the most extended supported dates, and used them for the table above. These versions are listed in the table below. If there are several Windows versions for the same .NET Framework version, then I've tried to choose the latest published one (since it may have better chance of its support to be extended). For Windows 10, I consider Windows 10 Enterprise and Education support dates, since they're generally later or the same as for the corresponding versions of Windows 10 Home and Pro.
|.NET Framework Version||OS Version||Lifecycle Document|
|4.5.2||Windows Server 2012 R2||Windows Server 2012 R2 Lifecycle|
|4.6||Windows 10||Windows 10 Enterprise and Education Lifecycle|
|4.6.1||Windows 10||Windows 10 Enterprise and Education Lifecycle|
|4.6.2||Windows Server 2016||Windows Server 2016 Lifecycle|
|4.7||Windows Server 2016||Windows Server 2016 Lifecycle|
|4.7.1||Windows Server 2016||Windows Server 2016 Lifecycle|
|4.7.2||Windows Server 2019||Windows Server 2019 Lifecycle|
|4.8||Windows Server 2019||Windows Server 2019 Lifecycle|
According to the Lifecycle FAQ .NET Framework 4.6 (the same for 4.6.1)
[…] is supported as a Windows component on the latest required operating system update for […] Windows 10.
It is unclear how to interpret that, considering other .NET Framework versions have particular OS updates listed (say, "Windows 10 Anniversary Update (Version 1607)" for .NET Framework 4.6.2): does it refer to any versions of Windows 10, or only to the initial release (aka Version 1709)? For now, I consider this applicable to all versions of Windows 10 (as listed in the corresponding lifecycle document), as written.
Note that there are Windows 7 Extended Security Updates, which currently span up to Year 3 and end at almost the same date as Windows Server 2012 R2 extended support, but if they will be extended more, then Windows 7 may become the main factor determining the extended support date for .NET Framework 4.5.2.
.NET Core and .NET
For .NET Core, .NET 5 and newer versions of .NET, the support policy is much clearer, so I see no point in reproducing that here.