How .NET support works
- A new major version every November. Even-numbered releases are Long Term Support (LTS) with three years of support; odd-numbered ones are Standard Term Support (STS) with two. The quality is the same; only the length differs. Two years for STS is recent: it used to be 18 months, which is why .NET 9 and .NET 8 now end on the same day.
- Active, then maintenance. The last six months of every release are maintenance: security fixes only. Then it is out of support and gets nothing, however serious the vulnerability.
- Supported means the latest patch. Microsoft requires the latest patch of a release for it to count as supported. Patches ship on Patch Tuesday (the second Tuesday of the month), and most months they fix published CVEs. An app on 8.0.4 is on a supported version but not a supported patch; the checker lists what it is missing.
- ASP.NET Core and EF Core follow the .NET version they ship with.
SDK versions and feature bands
SDK versions do not match runtime versions. In 8.0.425, the hundreds digit is the feature band (4xx) and the rest is the patch (25). Each band pairs with a Visual Studio version, so dotnet sdk check only offers the newest SDK in the band you have: for 10.0.100 it suggests the latest 10.0.1xx, not 10.0.4xx. The checker shows both. Every SDK band carries the latest runtime of its release.
net10 is not .NET 10
In a target framework without a dot, each digit is one part of the version. net48 is .NET Framework 4.8 and net481 is 4.8.1, so net10 is .NET Framework 1.0, and the build fails with error MSB3644: The reference assemblies for .NETFramework,Version=v1.0 were not found. Write net10.0. Versions from 5 up are read as .NET, so net8 and net80 both mean .NET 8, but the dotted form is the only one that works for 10 and later. The checker reads target frameworks exactly as NuGet does.
.NET Framework
.NET Framework 4.8 and 4.8.1 have no end date of their own: they are part of Windows and are supported for as long as the Windows version they run on. 4.6.2 ends on January 12, 2027, and 3.5 SP1 is supported until January 9, 2029. .NET Framework gets no new features; new work belongs on .NET.
FAQ
When does .NET 8 support end?
.NET 8 (LTS) reaches end of support on November 10, 2026, the same day as .NET 9 (STS). After that date it gets no security fixes. .NET 10 (LTS) is supported until November 14, 2028.
What is the difference between LTS and STS?
Long Term Support (LTS) releases, the even-numbered ones, get three years of support and patches. Standard Term Support (STS) releases, the odd-numbered ones, get two years. The quality is the same; only the length of support differs. The final six months of either are maintenance: security fixes only.
Am I supported if I run an old patch of a supported version?
No. Microsoft's policy requires the latest patch update for a release to be supported. Patches ship on Patch Tuesday, the second Tuesday of the month, and many of them fix security vulnerabilities.
Why does TargetFramework net10 fail with error MSB3644?
Without a dot, each digit of a target framework is a version part, so net10 means .NET Framework 1.0, not .NET 10, and the build looks for its reference assemblies. Write net10.0. The same happens with net11 and net12; net8 and net80 do mean .NET 8, because versions 5 and up are .NET.
When does .NET Framework 4.8 support end?
.NET Framework 4.8 and 4.8.1 have no end date of their own: they are components of Windows and are supported as long as the Windows version they are installed on. .NET Framework 4.6.2 support ends on January 12, 2027, and 3.5 SP1 on January 9, 2029.