-
Notifications
You must be signed in to change notification settings - Fork 6.1k
Version updates for .NET 10 GA #49661
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: net10-release
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR adds support for .NET 10 across the documentation, updating version references, TFMs, target platform versions, zone pivots, and related configuration files to include .NET 10 alongside existing versions.
Key changes
- Added .NET 10 TFM (
net10.0) and preprocessor symbols (NET10_0,NET10_0_OR_GREATER) to framework documentation. - Updated .NET Standard compatibility tables to include version 10.0 support.
- Added .NET 10 zone pivots for versioned documentation sections.
Reviewed Changes
Copilot reviewed 29 out of 32 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| includes/preprocessor-symbols.md | Added .NET 10 preprocessor symbols and TFM definitions |
| includes/net-standard-*.md | Updated version support tables to include .NET 10.0 |
| docs/zone-pivot-groups.yml | Added .NET 10 and .NET 11 Preview pivot options |
| docs/standard/serialization/system-text-json/migrate-from-newtonsoft.md | Updated zone pivot to include dotnet-10-0 |
| docs/standard/net-standard.md | Updated references to .NET versions and TFMs to include .NET 10 |
| docs/standard/library-guidance/cross-platform-targeting.md | Updated date metadata |
| docs/standard/frameworks.md | Added .NET 10 TFMs, OS-specific TFMs, and target platform versions; fixed heading reference typo |
| docs/standard/analyzers/platform-compat-analyzer.md | Updated platform compatibility description |
| docs/index.yml | Updated API reference URLs to .NET 10 |
| docs/fsharp/index.yml | Removed version-specific API reference |
| docs/framework/install/versions-and-dependencies.md | Added Windows 11 September 2025 Release version support |
| docs/framework/install/on-windows-and-server.md | Added Windows 11 25H2 to compatibility table |
| docs/core/whats-new/dotnet-6.md | Fixed TFM documentation link reference |
| docs/core/project-sdk/msbuild-props.md | Added .NET 10 analyzer version options; removed .NET 7-specific notes; updated example versions |
| docs/core/project-sdk/msbuild-props-desktop.md | Fixed TFM documentation link reference |
| docs/core/porting/versioning-sdk-msbuild-vs.md | Removed ms.author metadata; updated date |
| docs/core/install/windows.md | Added .NET 10 to compatibility table and Visual Studio version requirements; improved heading capitalization |
| docs/core/docker/build-container.md | Added .NET 10 zone pivot sections; consolidated code snippets |
| docs/core/docker/snippets/App/* | Added new .NET 9-based Docker example files |
| docs/core/docker/snippets/9.0/App/Program.cs | Removed (consolidated to parent directory) |
| docs/core/docker/snippets/8.0/App/* | Removed .NET 8 example files |
Comments suppressed due to low confidence (1)
docs/core/install/windows.md:267
- According to the Markdown writing style guidelines, list items should use the Oxford comma. The list should read "
always,never, ornextSession" which is correct, but guidelines also require list items to end with periods if they are more than three words. These list items are complete sentences and should end with periods.
- `never` retains previous installations and requires manual intervention to remove previous .NET installations.
- `always` removes previous installations after the new version is installed. This is the default behavior in .NET.
- `nextSession` defers the removal until the next logon session from members in the Administrators group.
- Values are case-insensitive and invalid values default to `always`.
| - title: "ASP.NET Core API reference" | ||
| summary: API reference documentation for ASP.NET Core | ||
| url: ../api/index.md?view=view=aspnetcore-9.0&preserve-view=true | ||
| url: ../api/index.md?view=view=aspnetcore-10.0&preserve-view=true |
Copilot
AI
Nov 7, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The URL contains a duplicate "view=" parameter. It should be ../api/index.md?view=aspnetcore-10.0&preserve-view=true not ../api/index.md?view=view=aspnetcore-10.0&preserve-view=true.
| url: ../api/index.md?view=view=aspnetcore-10.0&preserve-view=true | |
| url: ../api/index.md?view=aspnetcore-10.0&preserve-view=true |
| > [!NOTE] | ||
| > | ||
| > - Starting in the .NET 8 SDK, `PublishRelease` defaults to `true` for projects that target .NET 8 or later. For more information, see ['dotnet publish' uses Release configuration](../compatibility/sdk/8.0/dotnet-publish-config.md). | ||
| > - This property does not affect the behavior of `dotnet build /t:Publish`, and it only changes the configuration only when publishing via the .NET CLI. |
Copilot
AI
Nov 7, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This sentence has a redundancy issue. It reads "it only changes the configuration only when publishing" which repeats "only" twice. The corrected version should be "it changes the configuration only when publishing via the .NET CLI."
| > - This property does not affect the behavior of `dotnet build /t:Publish`, and it only changes the configuration only when publishing via the .NET CLI. | |
| > - This property does not affect the behavior of `dotnet build /t:Publish`, and it changes the configuration only when publishing via the .NET CLI. |
| The .NET SDK is designed to be able to support newly released APIs for an individual platform without a new version of the base TFM. This enables you to access platform-specific functionality without waiting for a major release of .NET. You can gain access to these newly released APIs by incrementing the platform version in the TFM. For example, if the Android platform added API level 32 APIs in a .NET 6.0.x SDK update, you could access them by using the TFM `net6.0-android32.0`. | ||
| The .NET SDK is designed to be able to support newly released APIs for an individual platform without a new version of the base TFM. This enables you to access platform-specific functionality without waiting for a major release of .NET. You can gain access to these newly released APIs by incrementing the platform version in the TFM. For example, if the Android platform added API level 34 APIs in a .NET 8.0.x SDK update, you could access them by using the TFM `net8.0-android34.0`. | ||
|
|
||
| When an OS-specific TFM doesn't specify the platform version explicitly, it has an implied value that can be inferred from the base TFM and platform name. For example, the default platform version for Android in .NET 9 is `35.0`, which means that `net9.0-android` is shorthand for the canonical `netp.0-android35.0` TFM. The shorthand form is intended for use in project files only, and is expanded to the canonical form by the .NET SDK's MSBuild targets before being passed to other tools, such as NuGet. |
Copilot
AI
Nov 7, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There's a typo in the TFM. It should be net9.0-android35.0 not netp.0-android35.0. The "9" is missing after "net".
| When an OS-specific TFM doesn't specify the platform version explicitly, it has an implied value that can be inferred from the base TFM and platform name. For example, the default platform version for Android in .NET 9 is `35.0`, which means that `net9.0-android` is shorthand for the canonical `netp.0-android35.0` TFM. The shorthand form is intended for use in project files only, and is expanded to the canonical form by the .NET SDK's MSBuild targets before being passed to other tools, such as NuGet. | |
| When an OS-specific TFM doesn't specify the platform version explicitly, it has an implied value that can be inferred from the base TFM and platform name. For example, the default platform version for Android in .NET 9 is `35.0`, which means that `net9.0-android` is shorthand for the canonical `net9.0-android35.0` TFM. The shorthand form is intended for use in project files only, and is expanded to the canonical form by the .NET SDK's MSBuild targets before being passed to other tools, such as NuGet. |
| | Universal Windows Platform | uap [uap10.0]<br>uap10.0 [win10] [netcore50] | | ||
|
|
||
| \* .NET 5 and later TFMs include some operating system-specific variations. For more information, see the following section, [.NET 5+ OS-specific TFMs](#net-5-os-specific-tfms). | ||
| \* .NET 5 and later TFMs include some operating system-specific variations. For more information, see the following section, [.OS-specific TFMs](#os-specific-tfms). |
Copilot
AI
Nov 7, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The period is misplaced in this heading reference. It should be "OS-specific TFMs" without the leading period.
| \* .NET 5 and later TFMs include some operating system-specific variations. For more information, see the following section, [.OS-specific TFMs](#os-specific-tfms). | |
| \* .NET 5 and later TFMs include some operating system-specific variations. For more information, see the following section, [OS-specific TFMs](#os-specific-tfms). |
BillWagner
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This LGTM @gewarren
Contributes to #48865.
Internal previews
Toggle expand/collapse