From 7e538585a1da8884590565181e1324d44ab1b830 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 6 Oct 2025 19:17:32 +0000 Subject: [PATCH 1/4] Initial plan From 3dd287b1a4bf278ef714f23928243320dd09aeac Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Mon, 6 Oct 2025 19:24:31 +0000 Subject: [PATCH 2/4] Add .NET 10 SDK version requirements breaking change documentation Co-authored-by: gewarren <24882762+gewarren@users.noreply.github.com> --- docs/core/compatibility/10.0.md | 1 + .../sdk/10.0/version-requirements.md | 46 +++++++++++++++++++ docs/core/compatibility/toc.yml | 2 + .../core/porting/versioning-sdk-msbuild-vs.md | 4 ++ 4 files changed, 53 insertions(+) create mode 100644 docs/core/compatibility/sdk/10.0/version-requirements.md diff --git a/docs/core/compatibility/10.0.md b/docs/core/compatibility/10.0.md index 7d0c66625293f..2c1e366be2e03 100644 --- a/docs/core/compatibility/10.0.md +++ b/docs/core/compatibility/10.0.md @@ -119,6 +119,7 @@ If you're migrating an app to .NET 10, the breaking changes listed here might af | [NuGet packages with no runtime assets aren't included in deps.json](sdk/10.0/deps-json-trimmed-packages.md) | Source incompatible | Preview 5 | | [PackageReference without a version raises an error](sdk/10.0/nu1015-packagereference-version.md) | Behavioral change | Preview 6 | | [PrunePackageReference privatizes direct prunable references](sdk/10.0/prune-packagereference-privateassets.md) | Behavioral change | Preview 7 | +| [Version requirements for .NET 10 SDK](sdk/10.0/version-requirements.md) | Source incompatible | RC 2 | | [HTTP warnings promoted to errors in `dotnet package list` and `dotnet package search`](sdk/10.0/http-warnings-to-errors.md) | Behavioral/source incompatible change | Preview 4 | | [NUGET_ENABLE_ENHANCED_HTTP_RETRY environment variable removed](sdk/10.0/nuget-enhanced-http-retry-removed.md) | Behavioral change | Preview 6 | | [NuGet logs an error for invalid package IDs](sdk/10.0/nuget-packageid-validation.md) | Behavioral change | RC 1 | diff --git a/docs/core/compatibility/sdk/10.0/version-requirements.md b/docs/core/compatibility/sdk/10.0/version-requirements.md new file mode 100644 index 0000000000000..a7b82872aca29 --- /dev/null +++ b/docs/core/compatibility/sdk/10.0/version-requirements.md @@ -0,0 +1,46 @@ +--- +title: "Breaking change: Version requirements for .NET 10 SDK" +description: Learn about the breaking change in the .NET 10 SDK where specific versions of Visual Studio and MSBuild are required. +ms.date: 01/03/2025 +ai-usage: ai-assisted +--- +# Version requirements for .NET 10 SDK + +Per the [published support rules](../../../porting/versioning-sdk-msbuild-vs.md#targeting-and-support-rules), the minimum Visual Studio and MSBuild version for each new major release is updated with a one quarter delay. For the .NET 10 release: + +- 10.0.100 requires version 17.14 to be loaded but only supports targeting .NET 9 in that version. +- To target `net10.0`, you must use version 18.0 or later. + +## Version introduced + +.NET 10 RC 2 + +## Previous behavior + +The previous minimum for .NET 10 previews was Visual Studio 17.13 to allow time for release and more adoption of Visual Studio 17.14. + +## New behavior + +- .NET 10.0.100 RC 2 and later will only load on Visual Studio version 17.14 or later. +- .NET 10.0.100 will warn when targeting `net10.0` on Visual Studio version 17.14. +- To target `net10.0`, you must use Visual Studio version 18.0 or later. + +## Type of breaking change + +This change can affect [source compatibility](../../categories.md#source-compatibility). + +## Reason for change + +This is part of the standard support policy for the SDK as not all prior versions of Visual Studio and MSBuild can be supported. + +## Recommended action + +Upgrade to Visual Studio 2026 to target `net10.0`. If you only need to target `net9.0` or earlier, you can use Visual Studio 17.14 or later. + +## Affected APIs + +N/A + +## See also + +- [Targeting and support rules](../../../porting/versioning-sdk-msbuild-vs.md#targeting-and-support-rules) diff --git a/docs/core/compatibility/toc.yml b/docs/core/compatibility/toc.yml index 18c08be85a233..f13d3add0243d 100644 --- a/docs/core/compatibility/toc.yml +++ b/docs/core/compatibility/toc.yml @@ -146,6 +146,8 @@ items: href: sdk/10.0/nuget-enhanced-http-retry-removed.md - name: NuGet logs an error for invalid package IDs href: sdk/10.0/nuget-packageid-validation.md + - name: Version requirements for .NET 10 SDK + href: sdk/10.0/version-requirements.md - name: Windows Forms items: - name: API obsoletions diff --git a/docs/core/porting/versioning-sdk-msbuild-vs.md b/docs/core/porting/versioning-sdk-msbuild-vs.md index b38a308a2ebf0..7faa1da141704 100644 --- a/docs/core/porting/versioning-sdk-msbuild-vs.md +++ b/docs/core/porting/versioning-sdk-msbuild-vs.md @@ -89,6 +89,7 @@ A the following policy dictates which versions of MSBuild and Visual Studio a gi | 9.0.100 | 17.12 | 17.11 | Net8.0 | Net9.0 | | 9.0.200 | 17.13 | 17.12 | Net9.0 | Net9.0 | | 9.0.300 | 17.14 | 17.12 | Net9.0 | Net9.0 | +| 10.0.100 | 18.0 | 17.14 | Net9.0 | Net10.0 | > [!NOTE] > The table depicts how these versioning rules are applied, starting with .NET SDK 7.0.100 and .NET SDK 6.0.300. It also depicts how the policy would have applied to previously shipped versions of the .NET SDK, had it been in place then. However, the requirements for previous versions of the SDK don't change—that is, the minimum required version of Visual Studio for .NET SDK 6.0.100 or 6.0.200 remains 16.10. @@ -96,6 +97,8 @@ A the following policy dictates which versions of MSBuild and Visual Studio a gi > Targeting `net8.0` is officially supported in Visual Studio 17.8+ only. > > Targeting `net9.0` is officially supported in Visual Studio 17.12+ only. +> +> Targeting `net10.0` is officially supported in Visual Studio 18.0+ only. To ensure consistent tooling, you should use `dotnet build` rather than `msbuild` to build your application when possible. @@ -111,6 +114,7 @@ Major versions of the .NET SDK are typically released within a few days of a Vis | 10.0.100 Preview 1 | 17.14 Preview 1 | | 10.0.100 Preview 2 | 17.14 Preview 2 | | 10.0.100 Preview 3 | 17.14 Preview 3 | +| 10.0.100 RC 2 | 17.14 | ## Reference From 1821f67d1f04ae2f389a8f8c9864f2671eeb30e5 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Wed, 8 Oct 2025 16:31:28 -0700 Subject: [PATCH 3/4] human edits --- .../sdk/10.0/version-requirements.md | 17 ++++++++--------- docs/core/porting/versioning-sdk-msbuild-vs.md | 6 +++--- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/docs/core/compatibility/sdk/10.0/version-requirements.md b/docs/core/compatibility/sdk/10.0/version-requirements.md index a7b82872aca29..fa162e18ca964 100644 --- a/docs/core/compatibility/sdk/10.0/version-requirements.md +++ b/docs/core/compatibility/sdk/10.0/version-requirements.md @@ -1,8 +1,8 @@ --- title: "Breaking change: Version requirements for .NET 10 SDK" description: Learn about the breaking change in the .NET 10 SDK where specific versions of Visual Studio and MSBuild are required. -ms.date: 01/03/2025 -ai-usage: ai-assisted +ms.date: 10/08/2025 +ai-usage: ai-generated --- # Version requirements for .NET 10 SDK @@ -17,25 +17,24 @@ Per the [published support rules](../../../porting/versioning-sdk-msbuild-vs.md# ## Previous behavior -The previous minimum for .NET 10 previews was Visual Studio 17.13 to allow time for release and more adoption of Visual Studio 17.14. +The previous minimum Visual Studio version for .NET 10 previews was 17.13 to allow time for release and more adoption of Visual Studio version17.14. ## New behavior -- .NET 10.0.100 RC 2 and later will only load on Visual Studio version 17.14 or later. -- .NET 10.0.100 will warn when targeting `net10.0` on Visual Studio version 17.14. -- To target `net10.0`, you must use Visual Studio version 18.0 or later. +- .NET 10.0.100 will only load on Visual Studio version 17.14 or later. +- .NET 10.0.100 warns when targeting `net10.0` on Visual Studio version 17.14. To target `net10.0`, you must use Visual Studio version 18.0 or later. ## Type of breaking change -This change can affect [source compatibility](../../categories.md#source-compatibility). +This change is a [behavioral change](../../categories.md#behavioral-change). ## Reason for change -This is part of the standard support policy for the SDK as not all prior versions of Visual Studio and MSBuild can be supported. +This change is part of the standard support policy for the SDK as not all prior versions of Visual Studio and MSBuild can be supported. ## Recommended action -Upgrade to Visual Studio 2026 to target `net10.0`. If you only need to target `net9.0` or earlier, you can use Visual Studio 17.14 or later. +Upgrade to Visual Studio 2026 to target `net10.0`. If you only need to target `net9.0` or earlier, you can use Visual Studio version 17.14 or later. ## Affected APIs diff --git a/docs/core/porting/versioning-sdk-msbuild-vs.md b/docs/core/porting/versioning-sdk-msbuild-vs.md index 7faa1da141704..70bd4ab7f2078 100644 --- a/docs/core/porting/versioning-sdk-msbuild-vs.md +++ b/docs/core/porting/versioning-sdk-msbuild-vs.md @@ -4,7 +4,7 @@ description: Learn about the versioning relationship between the .NET SDK and MS author: StephenBonikowsky ms.author: stebon ms.custom: updateeachrelease -ms.date: 11/06/2024 +ms.date: 10/08/2025 --- # .NET SDK, MSBuild, and Visual Studio versioning @@ -19,7 +19,7 @@ For example, version 7.0.203 ships with .NET 7, is the second minor Visual Studi An installation of Visual Studio includes a single matching copy of the .NET SDK. If you update your Visual Studio instance, the .NET SDK installed by Visual Studio is also updated, including across .NET SDK feature bands and major bands. If you want to use a different .NET SDK than what's installed by Visual Studio, you can install it from the [.NET download page](https://aka.ms/dotnet/download), and Visual Studio upgrade won't touch that version. You're responsible for updating that copy of the .NET SDK from then on. > [!NOTE] -The .NET SDK supports targeting down-level versions of .NET, so we recommend always updating your .NET SDK along with your Visual Studio version. +> The .NET SDK supports targeting down-level versions of .NET, so we recommend always updating your .NET SDK along with your Visual Studio version. ## Lifecycle @@ -74,7 +74,7 @@ The support timeframe for the SDK typically matches that of the Visual Studio ve ## Targeting and support rules -A the following policy dictates which versions of MSBuild and Visual Studio a given version of the .NET SDK will run in: +The following policy dictates which versions of MSBuild and Visual Studio a given version of the .NET SDK will run in: - Each new TargetFramework **requires** a new Visual Studio version or a new `dotnet` version. - The first version of Visual Studio that supports a new TargetFramework becomes a floor for the feature bands of that SDK for Roslyn API surface, MSBuild targets, source generators, analyzers, and so on. From ea1889e06951a46dfb24d01ce8d53beb8946ece8 Mon Sep 17 00:00:00 2001 From: Genevieve Warren <24882762+gewarren@users.noreply.github.com> Date: Mon, 13 Oct 2025 18:53:30 -0700 Subject: [PATCH 4/4] Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- docs/core/compatibility/10.0.md | 2 +- docs/core/compatibility/sdk/10.0/version-requirements.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/core/compatibility/10.0.md b/docs/core/compatibility/10.0.md index 2c1e366be2e03..7c59e740ceae1 100644 --- a/docs/core/compatibility/10.0.md +++ b/docs/core/compatibility/10.0.md @@ -119,7 +119,7 @@ If you're migrating an app to .NET 10, the breaking changes listed here might af | [NuGet packages with no runtime assets aren't included in deps.json](sdk/10.0/deps-json-trimmed-packages.md) | Source incompatible | Preview 5 | | [PackageReference without a version raises an error](sdk/10.0/nu1015-packagereference-version.md) | Behavioral change | Preview 6 | | [PrunePackageReference privatizes direct prunable references](sdk/10.0/prune-packagereference-privateassets.md) | Behavioral change | Preview 7 | -| [Version requirements for .NET 10 SDK](sdk/10.0/version-requirements.md) | Source incompatible | RC 2 | +| [Version requirements for .NET 10 SDK](sdk/10.0/version-requirements.md) | Behavioral change | RC 2 | | [HTTP warnings promoted to errors in `dotnet package list` and `dotnet package search`](sdk/10.0/http-warnings-to-errors.md) | Behavioral/source incompatible change | Preview 4 | | [NUGET_ENABLE_ENHANCED_HTTP_RETRY environment variable removed](sdk/10.0/nuget-enhanced-http-retry-removed.md) | Behavioral change | Preview 6 | | [NuGet logs an error for invalid package IDs](sdk/10.0/nuget-packageid-validation.md) | Behavioral change | RC 1 | diff --git a/docs/core/compatibility/sdk/10.0/version-requirements.md b/docs/core/compatibility/sdk/10.0/version-requirements.md index fa162e18ca964..194d534e224db 100644 --- a/docs/core/compatibility/sdk/10.0/version-requirements.md +++ b/docs/core/compatibility/sdk/10.0/version-requirements.md @@ -17,7 +17,7 @@ Per the [published support rules](../../../porting/versioning-sdk-msbuild-vs.md# ## Previous behavior -The previous minimum Visual Studio version for .NET 10 previews was 17.13 to allow time for release and more adoption of Visual Studio version17.14. +The previous minimum Visual Studio version for .NET 10 previews was 17.13 to allow time for release and more adoption of Visual Studio version 17.14. ## New behavior