.NET End of Life —
every version's date, and why 8 and 9 both die November 10, 2026
Quick answer: .NET 8 (LTS) and .NET 9 (STS) both reach end of support on November 10, 2026 — the same Patch Tuesday. Both have been in the security-fixes-only maintenance phase since May 2026. .NET 6, 7 and everything before are already end of life. The only modern .NET with runway past 2026 is .NET 10 (LTS), supported until November 14, 2028. .NET Framework runs on a separate clock: 4.8/4.8.1 live as long as the Windows they ship with, 4.6.2 ends January 12, 2027.
Key Dates at a Glance
- .NET 8 (LTS): end of support 2026-11-10
- .NET 9 (STS): end of support 2026-11-10
- .NET 10 (LTS): end of support 2028-11-14
- .NET 7 (STS): end of support 2024-05-14
- .NET 6 (LTS): end of support 2024-11-12
- .NET Framework 4.6.2: end of support 2027-01-12
- .NET Framework 3.5 SP1: end of support 2029-01-09
.NET EOL Risk Scores
An end-of-life date on its own does not tell you how urgent a version is. We publish an EOL Risk Score (0–100) for every tracked version, combining how long past — or how close to — end of life it is, the attack surface of the software class, whether CISA lists the product in its Known Exploited Vulnerabilities catalog, and whether commercial extended support exists. .NET is an internet-facing application runtime named in the KEV catalog, so even the current release starts from an elevated baseline.
| Version | EOL Risk Score | What drives it |
|---|---|---|
| .NET 7 | 90 | End of support May 14, 2024 — recency factor at maximum; runtime attack surface; KEV exposure. |
| .NET 6 | 85 | End of support November 12, 2024; same drivers, slightly less time elapsed. |
| .NET 8 | 65 | End of support November 10, 2026; the recency factor climbs monthly toward it. Third-party extended support exists. |
| .NET 9 | 65 | Same date as .NET 8, same drivers. |
| .NET 10 | 50 | Supported to November 14, 2028; the baseline for a KEV-listed runtime. |
Scores update automatically at every site build as dates pass and the KEV catalog changes; live values for every version, including the .NET Core releases, are on the .NET product page, and the methodology is on the EOL Risk Score page.
Complete .NET End-of-Life Schedule
Every release of modern .NET (formerly .NET Core), from Microsoft's official support policy. Patch releases ship on Patch Tuesday; the current patch for each supported version is on the .NET product page, regenerated at every deploy.
| Version | Type | Released | End of support | Status |
|---|---|---|---|---|
| .NET 10 | LTS | Nov 11, 2025 | Nov 14, 2028 | Supported |
| .NET 9 | STS | Nov 12, 2024 | Nov 10, 2026 | Approaching |
| .NET 8 | LTS | Nov 14, 2023 | Nov 10, 2026 | Approaching |
| .NET 7 | STS | Nov 8, 2022 | May 14, 2024 | EOL |
| .NET 6 | LTS | Nov 8, 2021 | Nov 12, 2024 | EOL |
| .NET 5 | STS | Nov 10, 2020 | May 10, 2022 | EOL |
| .NET Core 3.1 | LTS | Dec 3, 2019 | Dec 13, 2022 | EOL |
| .NET Core 3.0 | STS | Sep 23, 2019 | Mar 3, 2020 | EOL |
| .NET Core 2.2 | STS | Dec 4, 2018 | Dec 23, 2019 | EOL |
| .NET Core 2.1 | LTS | May 30, 2018 | Aug 21, 2021 | EOL |
| .NET Core 2.0 | STS | Aug 14, 2017 | Oct 1, 2018 | EOL |
| .NET Core 1.1 | STS | Nov 16, 2016 | Jun 27, 2019 | EOL |
| .NET Core 1.0 | STS | Jun 27, 2016 | Jun 27, 2019 | EOL |
Not yet on Microsoft's support page and therefore not in the table: on the yearly cadence, .NET 11 is the odd-numbered STS release expected in November 2026 and .NET 12 the next LTS in November 2027. Neither has a published date; both will appear here when Microsoft publishes them.
Every .NET version, one line each
The same schedule as plain statements, one per release, for anyone who needs a single date rather than a table. Every date is bound to the same data as the .NET product page and re-verified at each build.
- .NET 10 (LTS) — released November 11, 2025; end of support November 14, 2028.
- .NET 9 (STS) — released November 12, 2024; end of support November 10, 2026.
- .NET 8 (LTS) — released November 14, 2023; end of support November 10, 2026.
- .NET 7 (STS) — released November 8, 2022; end of support May 14, 2024.
- .NET 6 (LTS) — released November 8, 2021; end of support November 12, 2024.
- .NET 5 (STS) — released November 10, 2020; end of support May 10, 2022.
- .NET Core 3.1 (LTS) — released December 3, 2019; end of support December 13, 2022.
- .NET Core 3.0 (STS) — released September 23, 2019; end of support March 3, 2020.
- .NET Core 2.2 (STS) — released December 4, 2018; end of support December 23, 2019.
- .NET Core 2.1 (LTS) — released May 30, 2018; end of support August 21, 2021.
- .NET Core 2.0 (STS) — released August 14, 2017; end of support October 1, 2018.
- .NET Core 1.1 (STS) — released November 16, 2016; end of support June 27, 2019.
- .NET Core 1.0 (STS) — released June 27, 2016; end of support June 27, 2019.
And the .NET Framework lines, which run on Microsoft's component lifecycle rather than the yearly cadence:
- .NET Framework 4.8.1 — released August 9, 2022; no end date announced, supported for as long as the Windows version it is installed on.
- .NET Framework 4.8 — released April 18, 2019; no end date announced, supported for as long as the Windows version it is installed on.
- .NET Framework 4.7.2 — released April 30, 2018; no end date announced, supported for as long as the Windows version it is installed on.
- .NET Framework 4.7.1 — released October 17, 2017; no end date announced, supported for as long as the Windows version it is installed on.
- .NET Framework 4.7 — released April 5, 2017; no end date announced, supported for as long as the Windows version it is installed on.
- .NET Framework 4.6.2 — released August 2, 2016; end of support January 12, 2027.
- .NET Framework 4.6.1 — released November 30, 2015; end of support April 26, 2022 (retired early because it was signed with SHA-1).
- .NET Framework 4.6 — released July 20, 2015; end of support April 26, 2022 (retired early because it was signed with SHA-1).
- .NET Framework 4.5.2 — released May 5, 2014; end of support April 26, 2022 (retired early because it was signed with SHA-1).
- .NET Framework 4.5.1 — released October 17, 2013; end of support January 12, 2016.
- .NET Framework 4.5 — released August 15, 2012; end of support January 12, 2016.
- .NET Framework 4.0 — released April 12, 2010; end of support January 12, 2016.
- .NET Framework 3.5 SP1 — released November 19, 2007; end of support January 9, 2029.
LTS vs STS: How the .NET Cycle Works
Microsoft ships a new major .NET version every November on a strict, predictable cadence and alternates two support tracks:
- LTS (Long-Term Support) — even-numbered releases (6, 8, 10). Supported for three years from release. What production should target.
- STS (Standard-Term Support) — odd-numbered releases (7, 9, 11). Supported for one year after the subsequent release ships, which with a November cadence means two years. Meant for teams that want the newest features and can upgrade yearly.
- Maintenance phase — the final six months of any release, LTS or STS: security fixes only, no functional updates. .NET 8 and 9 entered it in May 2026.
The arithmetic that catches teams: an LTS release's three years and the following STS release's two years end on the same November Patch Tuesday. That is not a quirk of 2026 — it is the rule. .NET 8 (LTS, November 2023) and .NET 9 (STS, November 2024) both end November 10, 2026; .NET 10 (LTS, November 2025) and .NET 11 (STS, November 2026) will both end in November 2028. Earlier STS releases — .NET 5 and .NET 7 — were on an 18-month rule, which is why they died in May rather than November; the two-year rule is why .NET 9 does not.
.NET 8 — End of Support November 10, 2026
.NET 8, the LTS release shipped November 14, 2023, reaches end of support on November 10, 2026. It has been in its maintenance phase — security fixes only — since May 2026. After the date: no security patches, no servicing, no Microsoft support, on the runtime that most production .NET workloads run today. Its current EOL Risk Score is 65, recalculated at every build as the date approaches; per-version details live on the .NET 8 page. The supported exit is an in-place upgrade to .NET 10 LTS — for most 8-to-10 moves a TFM bump and dependency pass rather than a rewrite.
.NET 9 — End of Support November 10, 2026
.NET 9 (STS, released November 12, 2024) ends support the same day as .NET 8: November 10, 2026. That is the LTS/STS convergence rule described above, not a coincidence. Being on the newer release buys no extra time — 9 and 8 walk off the same cliff together, and the destination for both is .NET 10. Live risk: 65 · .NET 9 page.
.NET 10 — Current LTS, Supported Until November 14, 2028
.NET 10 is the current long-term support release: shipped November 11, 2025, supported until November 14, 2028. It is the single safe migration target for everything older — landing anywhere else means moving again within months. Current patch level and dates are on the .NET 10 page.
.NET 6 and .NET 7 — Already End of Life
.NET 6 (LTS) reached end of support on November 12, 2024; .NET 7 (STS) on May 14, 2024. Neither has received a security patch since, and every CVE disclosed after those dates is permanently unpatched on them. Anything still running 6 or 7 is not "one version behind" — it is unsupported software accumulating silent exposure: 85 is 6's current EOL Risk Score. Extended-support vendors do cover EOL .NET lines — the form below matches options — but for most teams the 6→8→10 path collapses into a single 6→10 move.
.NET Framework: A Separate Clock
Modern .NET and .NET Framework are different products with different lifecycles, and the question “is .NET end of life?” usually conflates them. .NET Framework follows Microsoft's component lifecycle policy: a version is supported for as long as the Windows release it ships with. In practice:
| .NET Framework | Released | End of support |
|---|---|---|
| 4.8.1 | Aug 9, 2022 | No end date announced — follows the Windows version it is installed on |
| 4.8 | Apr 18, 2019 | No end date announced — follows the Windows version it is installed on |
| 4.7.2 | Apr 30, 2018 | No end date announced — follows the Windows version it is installed on |
| 4.7.1 | Oct 17, 2017 | No end date announced — follows the Windows version it is installed on |
| 4.7 | Apr 5, 2017 | No end date announced — follows the Windows version it is installed on |
| 4.6.2 | Aug 2, 2016 | Jan 12, 2027 |
| 4.6.1 | Nov 30, 2015 | Apr 26, 2022 (retired early — SHA-1 signing) |
| 4.6 | Jul 20, 2015 | Apr 26, 2022 (retired early — SHA-1 signing) |
| 4.5.2 | May 5, 2014 | Apr 26, 2022 (retired early — SHA-1 signing) |
| 4.5.1 | Oct 17, 2013 | Jan 12, 2016 |
| 4.5 | Aug 15, 2012 | Jan 12, 2016 |
| 4.0 | Apr 12, 2010 | Jan 12, 2016 |
| 3.5 SP1 | Nov 19, 2007 | Jan 9, 2029 |
Applications on .NET Framework 4.6.2 have a real date; applications on 4.8/4.8.1 do not, but they also get no new features and are outside the modern .NET performance and platform story. Every version is on the .NET Framework product page.
How to Check Your .NET Version
dotnet --list-runtimes— every installed runtime (this is the one that matters for what is actually running);dotnet --list-sdksfor SDKs;dotnet --versionfor the SDK in use in the current directory.- Inside an application:
System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription(e.g..NET 8.0.30) orEnvironment.Version. - In the project file:
<TargetFramework>net8.0</TargetFramework>— what it was built for. In containers: themcr.microsoft.com/dotnet/aspnet:8.0tag. - .NET Framework: the
ReleaseDWORD underHKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full— 533320 or higher is 4.8.1, 528040 is 4.8, 461808 is 4.7.2, 394802 is 4.6.2.
Fleet-wide, the same values come from your CMDB or agent inventory; the EOL Checker takes a version and returns its status and date, and the Stack Scanner reads a pasted inventory or project file and flags the .NET runtime alongside the packages, OS and database that each have their own clock.
Migrating to .NET 10
Modern .NET's backward compatibility makes major-version upgrades far less painful than the .NET Framework era. The typical path:
- Update the target framework moniker — change
<TargetFramework>net8.0</TargetFramework>tonet10.0in your project files. - Update NuGet packages — bump dependencies to their .NET 10-compatible versions; most popular libraries ship them on day one.
- Review breaking changes — Microsoft publishes a per-version breaking-changes list; most applications hit few or none.
- Update CI and base images — bump your
mcr.microsoft.com/dotnetDocker tags and pipeline SDK versions to 10.0. - Run your test suite — if it passes on .NET 10 in CI, production typically follows cleanly.
Skipping from .NET 6 or 7 straight to 10 is supported and usually the right move — there is no value in stopping at 8, which itself ends November 10, 2026.
What Happens When a .NET Version Reaches End of Support
Microsoft stops shipping security patches for that version. New CVEs disclosed against the runtime — and .NET processes HTTP requests, deserializes untrusted data, and runs in internet-facing services — are never fixed for your version. Your vulnerability scanner often will not flag it either, because it checks CVE version ranges that do not list the end-of-life build. That is the CVE blind spot, and it is why an unpatched runtime is among the higher-weighted factors in the EOL Risk Score. For regulated teams, an end-of-life runtime is also a standard audit finding under SOC 2, PCI DSS, NIS2 and ISO 27001.
Your Options When a .NET Date Arrives
- Upgrade to .NET 10. The default answer and, for most applications, a target-framework change plus a package bump. Resets the clock to November 2028.
- Buy extended support for .NET 8. Independent vendors sell security patches for .NET versions past Microsoft's date — a bridge for applications that cannot move by November, priced per year and usually more than the upgrade over a multi-year horizon. See extended support options.
- Isolate and schedule. Where an application is being retired anyway, contain it (no inbound internet, patched host, WAF) and set the retirement date; do not let “retiring soon” become 2028.
The right choice comes down to how many more years the system has to run: under a year, a bridge or isolation; one to three, migrate once; indefinitely, get to .NET 10 now and put November 2028 in the calendar.
.NET currently carries an EOL Risk Score™ of 85/100 — Grade F, critical risk, recalculated at every site build from EOL recency, attack surface, CISA KEV exposure, and extended-support availability. Per-version scores and dates are on the .NET lifecycle page.
The right response comes down to one question: how many more years does this system need to run? Under a year, extended support (where it exists) is usually cheaper than an emergency migration. One to three years, migrate — support fees paid repeatedly cost more than doing the project once. Indefinitely, migrate now and plan the next one before it surprises you. Extended support is often the more expensive choice over a multi-year horizon — a bridge, not a destination. And if this deadline feels like vendor caprice, it isn’t — why end of life is inevitable for every version, with the receipts.
Frequently Asked Questions
When is .NET 8 end of support?
.NET 8 end of support is November 10, 2026. That is the last day Microsoft ships security fixes for .NET 8 (an LTS release, supported three years from its November 14, 2023 release). After that date .NET 8 is out of support; Microsoft sells no extended support for .NET, so the route is an upgrade to .NET 10.
Is .NET 8 still supported?
Yes, until November 10, 2026. Until then .NET 8 receives security and servicing updates as a Long Term Support release. From that day it is unsupported, and so is .NET 9, whose Standard Term Support ends on the same date: November 10, 2026.
When is .NET 9 end of support?
.NET 9 end of support is November 10, 2026, 18 months after its November 12, 2024 release under Standard Term Support. It shares the date with .NET 8, which is why November 10, 2026 is a double cliff for .NET.
When does .NET 8 reach end of life?
.NET 8 (LTS) reaches end of support on November 10, 2026 — three years after its November 14, 2023 release. It has been in the maintenance phase (security fixes only) since May 2026. .NET 9 (STS) ends the same day.
Why do .NET 8 and .NET 9 end on the same day?
Because of the support rule, not a coincidence. LTS releases get three years; STS releases get one year after the next release ships, which with a yearly November cadence means two years. .NET 8 (November 2023 + 3 years) and .NET 9 (November 2024 + 2 years) both land on the November 2026 Patch Tuesday, November 10.
How long is .NET LTS supported?
Three years from release. Even-numbered releases (6, 8, 10) are LTS. .NET 10, released November 11, 2025, is supported until November 14, 2028. The final six months of any release, LTS or STS, is the maintenance phase, in which only security fixes ship.
How long is .NET STS supported?
STS (Standard Term Support) releases are supported for one year after the subsequent release — two years in practice, since a new .NET ships every November. Odd-numbered releases (7, 9, 11) are STS. .NET 9 runs from November 12, 2024 to November 10, 2026. Older STS releases (5 and 7) were on the earlier 18-month rule.
Is .NET 6 still supported?
No. .NET 6 (LTS) reached end of support on November 12, 2024, and .NET 7 (STS) on May 14, 2024. Neither receives security fixes. Applications still on 6 or 7 should move directly to .NET 10; there is no reason to stop at .NET 8, which itself ends November 10, 2026.
What is the next .NET version and when does .NET 10 end?
.NET 10 (LTS) is the current release, supported until November 14, 2028. Microsoft ships a new major version every November; the next, .NET 11, is an odd-numbered STS release expected in November 2026, and .NET 12 (LTS) in November 2027. Production workloads that want the longest runway should target .NET 10 now and plan for .NET 12.
Is .NET Framework end of life?
Mostly not. .NET Framework follows a separate, component-based lifecycle: 4.8 and 4.8.1 are supported for as long as the Windows version they ship with, 4.7 through 4.7.2 likewise. .NET Framework 4.6.2 ends January 12, 2027; 4.5.2, 4.6 and 4.6.1 ended April 26, 2022; and 3.5 SP1 runs to January 9, 2029. Modern .NET (Core, 5+) and .NET Framework are different products with different clocks.
How do I check which .NET version I am running?
Run dotnet --list-runtimes to see every installed runtime and dotnet --list-sdks for SDKs; dotnet --version prints the SDK in use. Inside an application, System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription or Environment.Version report the running runtime; the project file's <TargetFramework> (for example net8.0) shows what it was built for. For .NET Framework, read the Release value under HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full: 533320 or higher is 4.8.1, 528040 is 4.8, 461808 is 4.7.2, 394802 is 4.6.2.
When does .NET 9 reach end of life?
.NET 9 (STS) reaches end of support on November 10, 2026, the same day as .NET 8. It shipped November 12, 2024 and gets the two years the STS rule allows. There is no reason to move from 9 to 8; the upgrade target for both is .NET 10.
What is the .NET 10 end of support date?
.NET 10 (LTS) is supported until November 14, 2028, three years from its November 11, 2025 release. It is the current long-term release and the migration target for everything on .NET 6, 7, 8 or 9.
Is .NET Framework 4.8 end of life?
No end date has been announced. .NET Framework 4.8 and 4.8.1 follow Microsoft's component lifecycle policy: each is supported for as long as the Windows version it is installed on. The Framework lines with a fixed date are 4.6.2, which ends January 12, 2027, and 3.5 SP1, which ends January 9, 2029.
Are .NET Core 3.1 and .NET 5 still supported?
No. .NET Core 3.1 (LTS) reached end of support on December 13, 2022 and .NET 5 (STS) on May 10, 2022. Every .NET Core release from 1.0 to 3.1, and .NET 5, 6 and 7, are past end of support. Only .NET 8, 9 and 10 receive patches today, and 8 and 9 stop on November 10, 2026.
Is there extended support for .NET 8 after November 2026?
Not from Microsoft, which publishes no paid extension for .NET releases. Independent vendors sell security patches for .NET versions past Microsoft's date, usually priced per year, as a bridge for applications that cannot move by the deadline. Whether that beats an upgrade depends on how many more years the application has to run; the form on this page matches options, and the decision guide works through the cost comparison.
Related Resources
- .NET 8 and .NET 9 both die November 10, 2026 — the double cutoff
- .NET 8: upgrade to 10, or buy support? — the decision guide
- .NET product page · .NET Framework product page — live status, dates and risk scores
- EOL Watch · EOL Checker · EOL Risk Score methodology