Support-Ende für .NET 8 und .NET 9 am 10. November 2026: So gelingt das Upgrade auf .NET 10

Microsoft stellt am 10. November 2026 die Sicherheitsupdates für .NET 8 und .NET 9 ein. Was das bedeutet, was bricht und wie Sie auf .NET 10 LTS umsteigen.

Vlado Pandžić

Vlado Pandžić · Gründer · Senior .NET-Architekt
Veröffentlicht · 5 Min. Lesezeit

Microsoft beendet den Support für .NET 8 und .NET 9 am 10. November 2026. Ab diesem Tag erhält keine der beiden Versionen mehr Sicherheitsupdates. Ziel des Upgrades ist .NET 10, ein Release mit Langzeit-Support (LTS), das bis November 2028 unterstützt wird. Bei den meisten Geschäftsanwendungen dauert das Upgrade Tage, nicht Monate, wenn man weiß, wo man hinschauen muss.

Welche Versionen betroffen sind

Version Support Support-Ende
.NET 8 LTS 10. November 2026
.NET 9 STS 10. November 2026
.NET 10 LTS November 2028

.NET 9 endet am selben Tag wie .NET 8, weil Releases mit Standard-Support jetzt 24 statt 18 Monate unterstützt werden.

Was das Support-Ende bedeutet

Anwendungen auf .NET 8 und .NET 9 laufen auch nach dem 10. November weiter. Was wegfällt:

  • Sicherheitsupdates. Schwachstellen, die nach diesem Datum gefunden werden, bleiben in der Produktion offen.
  • Technischer Support von Microsoft.
  • Ein sauberes Audit. Sicherheitsscanner markieren nicht unterstützte Runtimes, und das taucht in Sicherheitsfragebögen von Kunden und bei Zertifizierungen auf.

Direkt von .NET 8 auf .NET 10

Ein Zwischenstopp bei .NET 9 ist nicht nötig. .NET 8 und .NET 10 sind beide LTS-Releases, und Sie können direkt wechseln. Lesen Sie nur die Breaking Changes sowohl für .NET 9 als auch für .NET 10.

Checkliste für das Upgrade

  1. Installieren Sie das .NET 10 SDK und eine unterstützte IDE. Für net10.0 wird Visual Studio 2026 benötigt; Visual Studio 2022 unterstützt es nicht. JetBrains Rider und VS Code funktionieren ebenfalls.

  2. Aktualisieren Sie global.json, falls die Solution eine SDK-Version festlegt.

  3. Ändern Sie das Target Framework in jedem Projekt oder einmal in Directory.Build.props:

    <PropertyGroup>
      <TargetFramework>net10.0</TargetFramework>
    </PropertyGroup>
  4. Aktualisieren Sie die Microsoft-Pakete (ASP.NET Core, EF Core, Microsoft.Extensions.*) auf 10.x und prüfen Sie dann, ob es für jedes Drittanbieter-Paket eine Version mit .NET-10-Unterstützung gibt.

  5. Bauen Sie die Lösung und beheben Sie die Warnungen. Veraltete APIs erscheinen als Warnungen. Wenn Warnungen als Fehler behandelt werden, steckt hier der größte Teil der Arbeit.

  6. Führen Sie die Tests aus und prüfen Sie von Hand, was sie nicht abdecken: Start, Authentifizierung, Hintergrundjobs und Datenzugriff.

  7. Aktualisieren Sie Pipeline und Hosting: CI-Build-Images, Docker-Basis-Images (mcr.microsoft.com/dotnet/aspnet:10.0), das ASP.NET Core Hosting Bundle auf dem IIS oder den Runtime-Stack in Azure App Service.

  8. Deployen Sie zuerst in eine Testumgebung und beobachten Sie die Datenbank in den ersten Stunden nach dem Produktivrelease (siehe EF Core unten).

Breaking Changes, die Sie zuerst prüfen sollten

Die Listen von Microsoft sind lang. Das sind die Änderungen, die Geschäftsanwendungen im Web am häufigsten treffen.

SDK und Build

  • dotnet restore prüft jetzt auch transitive Pakete in Projekten, die auf .NET 10 zielen. Bekannte Schwachstellen in den Abhängigkeiten Ihrer Abhängigkeiten erscheinen als Warnungen NU1901–NU1904, und wenn Warnungen als Fehler gelten, bricht der Build ab. Finden Sie die Quelle mit dotnet nuget why und aktualisieren Sie das Paket, statt die Warnung zu unterdrücken.

ASP.NET Core 10

  • Cookie-Login-Weiterleitungen sind für bekannte API-Endpunkte deaktiviert. Statt auf die Login-Seite weiterzuleiten, geben API-Endpunkte jetzt 401 oder 403 zurück. Besser für APIs, aber prüfen Sie Frontends, die sich auf die Weiterleitung verlassen haben.
  • WebHostBuilder, IWebHost und WebHost sind veraltet. Eine Program.cs aus der Zeit von ASP.NET Core 2 oder 3 sollte auf das Minimal-Hosting-Modell umgestellt werden.
  • Razor-Laufzeitkompilierung und IActionContextAccessor sind veraltet.

Entity Framework Core 10

  • Collections in Abfragen wie ids.Contains(x.Id) werden jetzt in mehrere SQL-Parameter statt in einen einzigen JSON-Parameter übersetzt. Meist schneller, aber messen Sie Abfragen, die lange Listen übergeben.
  • SQL-Parameternamen sind einfacher (@city statt @__city_0). Fast jeder zwischengespeicherte Abfrageplan wird nach dem Deployment neu kompiliert, rechnen Sie also mit einer kurzen Spitze bei der CPU-Last der Datenbank.
  • Auf Azure SQL (UseAzureSql) bildet EF JSON jetzt auf den neuen Spaltentyp json ab, und die erste Migration nach dem Upgrade ändert bestehende JSON-Spalten.

Runtime und Container

  • Standard-Container-Images verwenden Ubuntu 24.04 statt Debian, und Debian-Images werden nicht mehr veröffentlicht. Prüfen Sie Dockerfiles, die Systempakete installieren.
  • BackgroundService führt das gesamte ExecuteAsync als Task aus, sodass Code vor dem ersten await den Anwendungsstart nicht mehr blockiert.
  • MailAddress lehnt aufeinanderfolgende Punkte ab und System.Text.Json prüft auf Konflikte bei Eigenschaftsnamen. Kleine Änderungen, die als Validierungs- oder Serialisierungsfehler auftauchen.

Wie lange es dauert

Grobe Richtwerte für eine Solution mit Tests:

  • eine einzelne API oder ein Service: wenige Stunden bis ein Tag
  • eine typische Geschäftsanwendung mit Datenbank und Frontend: 2 bis 5 Tage
  • eine große Solution mit vielen Projekten, alten Abhängigkeiten oder einem eigenen Build: 1 bis 3 Wochen

Das Framework selbst ist selten der langsame Teil. Das sind Drittanbieter-Pakete ohne Version für .NET 10 und fehlende Tests.

Noch auf .NET Framework?

Dann betrifft Sie der 10. November nicht, dafür aber eine größere Entscheidung. .NET Framework 4.8 erhält weiterhin Sicherheitsupdates, aber keine neuen Funktionen, und für ASP.NET Web Forms gibt es keinen Upgrade-Pfad auf modernes .NET. So migrieren wir Web Forms zu Blazor, Seite für Seite, während die alte Anwendung weiterläuft.

Quellen

© 2026 ProCoding — Alle Rechte vorbehalten.Impressum und DatenschutzSplit, Kroatien