.NET 8 and 9 end of support on November 10, 2026: find and move what is left
Microsoft's .NET support policy lists one end-of-support date for two versions: November 10, 2026 for both .NET 8 (LTS) and .NET 9 (STS). .NET 9 got the same date because STS releases are now supported for 24 months. After that day there are no more fixes or security updates for either. The current LTS, .NET 10, is supported until November 14, 2028.
Document services are a usual blind spot: the report generator, the invoice-to-PDF worker, the job that builds spreadsheets overnight. They run for years without a release and nobody remembers which runtime is inside.
Find what still runs on 8 or 9
Illustrative example. Run on build agents and in each repository:
# 1. What is installed on this host / build agent
dotnet --list-runtimes
dotnet --list-sdks
# 2. Which projects still target 8.0 or 9.0
grep -rlE "<TargetFrameworks?>[^<]*net(8|9)\.0" --include=*.csproj .
# 3. Which images still use the 8.0 / 9.0 base
grep -rnE "mcr\.microsoft\.com/dotnet/[a-z-]+:(8|9)\.0" --include=Dockerfile* .
The change itself is usually small
Illustrative example.
- <TargetFramework>net8.0</TargetFramework>
+ <TargetFramework>net10.0</TargetFramework>
- FROM mcr.microsoft.com/dotnet/aspnet:8.0
+ FROM mcr.microsoft.com/dotnet/aspnet:10.0
The work is in what surrounds it: package updates, a test run on real documents, a container rebuild, a deploy window.
Important. A service you do not rebuild keeps running after November 10 and looks fine. That is the risk: nothing breaks, it just stops getting security fixes. Base images matter as much as the project file, so check Dockerfiles and the runtime installed on hosts, not only
.csproj.
Checklist
- ☐ Inventory of services, jobs and tools on .NET 8 or 9, with an owner each
- ☐ Target framework moved to net10.0
- ☐ NuGet packages updated and built without warnings you do not understand
- ☐ Output compared on a set of real documents before and after
- ☐ Base images and host runtimes updated
- ☐ Deploy date booked before November 10
Give the upgrade an owner and a date
A runtime upgrade with no sponsor and no target date slips past the deadline. The project charter puts it on one page: sponsor, project lead, start and target dates, purpose, objective and a decision date. Fill it in for the upgrade and get it approved this week.
Sources: Microsoft, ".NET and .NET Core Support Policy"; Microsoft Learn, "Microsoft .NET and .NET Core" lifecycle; .NET release metadata (releases-index.json); .NET Blog, ".NET STS releases supported for 24 months".