.NET SDK Versions and Release History

This section documents MSBuild 18.9, the .NET SDK 10.0.402 (with its dotnet CLI) and NuGet 7.9, as published in the MSBuild, .NET and NuGet documentation on learn.microsoft.com, which is the reference these pages are written and verified against. Material about .NET 11 / NuGet 8.0 is still in preview and is always flagged as such — never presented as baseline.

This content was generated with the assistance of AI and should be verified against the official documentation before being relied on in production.

The C# Reference bibliography lists the reference material consulted while preparing these pages.

A .NET runtime version (10.0.13) and a .NET SDK version (10.0.402) are released together but numbered differently, and several SDKs ship for each runtime patch. This page explains the numbering, the support dates as of 2026-10-23, and collects the SDK changes that the other pages of this group cite. The baseline is .NET SDK 10.0.402 (2026-10-13, runtime 10.0.13).

Runtime and SDK versions

An SDK version is major.minor.Fpp: F is the feature band (hundreds digit) and pp the patch within it. The runtime it carries is the matching major.minor.patch. The release metadata lists, for every runtime patch, the SDKs released with it:

curl -s https://builds.dotnet.microsoft.com/dotnet/release-metadata/10.0/releases.json | python3 -c '
import json, sys
for r in json.load(sys.stdin)["releases"]:
    print(r["release-version"], r["release-date"], ", ".join(s["version"] for s in r.get("sdks", [])))'
10.0.13 2026-10-13 10.0.402, 10.0.113
10.0.12 2026-09-08 10.0.401, 10.0.112
10.0.11 2026-08-11 10.0.400, 10.0.303, 10.0.111
10.0.10 2026-07-14 10.0.302, 10.0.110
10.0.9 2026-06-09 10.0.301, 10.0.109
10.0.8 2026-05-12 10.0.300, 10.0.204, 10.0.108
10.0.7 2026-04-21 10.0.203, 10.0.107
10.0.6 2026-04-14 10.0.202, 10.0.106
10.0.5 2026-03-12 10.0.201, 10.0.105
10.0.4 2026-03-10 10.0.200, 10.0.104
10.0.3 2026-02-10 10.0.103
10.0.2 2026-01-13 10.0.102
10.0.1 2025-12-09 10.0.101
10.0.0 2025-11-11 10.0.100

The pattern:

  • A new feature band about every three months — 2xx in March, 3xx in May, 4xx in August — each bringing a newer MSBuild, NuGet and Roslyn and the features listed below. Each band is released with a runtime patch, so SDK 10.0.402 and 10.0.113 both carry runtime 10.0.13.

  • The 1xx band was patched in every release, alongside the newest band.

  • A superseded band gets one overlap release (10.0.303 in August, 10.0.204 in May) and then no more patches. global.json with rollForward: latestPatch on an old band therefore stops receiving security fixes; latestFeature moves with the bands (Installing and Selecting SDKs).

Support

The release index on 2026-10-23:

11.0  11.0.0-rc.2  2026-10-13  11.0.100-rc.2.26504.105  sts  go-live
10.0  10.0.13      2026-10-13  10.0.402                 lts  active       EOL 2028-11-14
9.0   9.0.21       2026-10-13  9.0.319                  sts  maintenance  EOL 2026-11-10
8.0   8.0.32       2026-10-13  8.0.426                  lts  maintenance  EOL 2026-11-10
7.0   7.0.20       2024-05-28  7.0.410                  sts  eol          EOL 2024-05-14
6.0   6.0.36       2024-11-12  6.0.428                  lts  eol          EOL 2024-11-12
  • LTS (even majors) releases are supported for three years, STS (odd majors) for two — so .NET 8 (LTS, November 2023) and .NET 9 (STS, November 2024) end on the same day, 2026-11-10, three weeks after this page’s date.

  • .NET 10 is the current LTS, supported until 2028-11-14.

  • .NET 11 is at release candidate 2, a go-live release: supported in production by Microsoft, but not final.

  • Building for an out-of-support framework warns NETSDK1138 (Target Frameworks and Runtime Identifiers).

SDK release history

SDK Changes, with the what’s-new section

.NET 8

--getProperty/--getItem/--getTargetResult (CLI-based project evaluation); the artifacts output layout (simplified output paths); dotnet pack and dotnet publish default to Release (publish and pack assets); the portable RID graph; Source Link built in (Source Link); dotnet workload clean (workload clean); Terminal Logger opt-in (terminal build output); NuGet audit during restore (restore security auditing)

.NET 9

Terminal Logger on by default (Terminal Logger); workload sets and dotnet workload config/history (workload sets, workload history); BuildCheck (BuildChecks); NuGetAudit reporting transitive packages (reverted to direct in 9.0.101) (Auditing Packages for Vulnerabilities); faster NuGet resolution for large repositories (faster resolution)

.NET 10

dotnet new sln creates .slnx; file-based apps (file-based apps); dotnet tool exec/dnx and platform-specific tools (one-shot execution, platform-specific tools); noun-first commands (command order); MTP in dotnet test (MTP); dotnet completions script (completion); global.json paths, errorMessage and test.runner; --cli-schema (CLI schema); console-app container images and ContainerImageFormat (containers); package pruning (pruning); .NET tasks in msbuild.exe (task host); dotnet package update

10.0.2xx

dotnet package download

10.0.4xx

deterministic dotnet pack (opt-in, DeterministicTimestamp) — this group’s baseline

.NET 11 (RC 2)

MSBuild Server on by default (MSBuild Server); the NativeAOT CLI host on by default (DOTNET_CLI_ENABLEAOT=false to opt out) (NativeAOT CLI); .slnf from the CLI (solution filters); file-based apps split across files and DLL #:include (split files, DLLs); DOTNET_TEST_RUNNER, dotnet test --no-dependencies (dotnet test); OpenTelemetry CLI telemetry (telemetry); reproducible container digests (containers); NETSDK1235 (NETSDK1235); --min-publish-age-hours for NuGet sources (publication age)

preview

dotnetup, a toolchain manager in public preview (dotnetup)

Some features reached earlier SDKs than these pages say. With SDK 10.0.402, #:include of .cs files and fish completion scripts already worked, and SDK 9.0.319 already had dotnet package add and dotnet reference add (Run and File-Based Apps, Solutions, References and Packages).

Common mistakes

  • Pinning an old feature band with latestPatch — the band stops receiving patches.

  • Confusing the SDK and runtime versions in bug reports — include dotnet --info.

  • Staying on .NET 8 or 9 after 2026-11-10 — no more security fixes; .NET 10 is the LTS.

  • Treating a go-live RC as final — supported, but APIs and defaults can still change before GA.