Microsoft's lifecycle page lists .NET Framework 4.6.2 with an end date in January 2027. Versions 4.8 and 4.8.1 are listed without an end date on that page. Record each Framework version you run, because the old 4.x versions are retired one at a time while newer ones stay listed.
What the lifecycle page lists
The Microsoft Lifecycle page for .NET Framework shows a start date and an end date for each release. As we read it on 19 October 2026:
| Version | Start | End date shown |
|---|---|---|
| 4.8.1 | 9 August 2022 | none shown |
| 4.8 | 18 April 2019 | none shown |
| 4.7.2 | 30 April 2018 | none shown |
| 4.7.1 | 17 October 2017 | none shown |
| 4.7 | 11 April 2017 | none shown |
| 4.6.2 | 2 August 2016 | January 2027 (the page shows 1/13/2027) |
| 4.6.1 | 30 November 2015 | 27 April 2022 |
| 4.6 | 29 July 2015 | 27 April 2022 |
The page links to a lifecycle FAQ and to an announcement about retiring several older versions. It also carries a note that .NET Framework 3.5 SP1 is a standalone product under the Fixed Policy starting with Windows 10 version 1809 and Windows Server 2019, and before that was treated as a component of the operating system.
Two cautions. First, "no end date shown" is not a promise of support forever. It means the page does not state one. Read the linked FAQ for what applies to your Windows version. Second, we did not verify the exact policy wording for 4.8, so check Microsoft's FAQ before you write a policy statement in a contract or audit.
.NET Framework is not .NET
This trips up inventories. .NET Framework is the Windows-only, older platform. The newer cross-platform ".NET" releases are tracked separately, with their own dates. For those, the .NET support policy page lists .NET 8 and .NET 9 both ending on 10 November 2026 and .NET 10 on 14 November 2028. If your estate has both families, you need two sets of rows. See .NET 9 STS ends November 2026 for that side.
Finding Framework versions in practice
- Project files declare a target framework moniker. Older projects use names like net462 or net48.
- Web.config and app.config can carry a target version and runtime settings.
- The machine's installed version is separate from the target. A server may have 4.8 installed while an app targets 4.6.2.
- Build servers and developer images often keep several versions around.
Record the target and the installed version as two fields. A mismatch is itself a finding.
A practical plan for 4.6.2 apps
- List every project that targets 4.6.2 or lower.
- Retarget to 4.8 where the code allows. This is often a small change, but test it.
- For apps you cannot retarget soon, note owner and reason.
- For apps that will be rewritten, link the rewrite to the .NET release you intend to use.
- Recheck the lifecycle page each quarter and log the check date.
A quarterly end-of-life check gives a routine for this.
Try it yourself
Click through it at your own pace, or open it full screen. Check how NuGet packages are listed, then add the target framework as a field.
Where Safeguard fits
Safeguard's SBOM and dependency scanning covers NuGet packages in your projects, and its asset discovery helps find services you may not have listed. The free scan is at gold.safeguard.sh/scan.
Quick check
Is .NET Framework the same as .NET 8?
No. They are different platforms with different lifecycle rows.
Does a blank end date mean I am covered?
Not by itself. Read Microsoft's lifecycle FAQ for your Windows version.
Sources
Last reviewed: 19 October 2026.