diff --git a/.github/prompts/error-consolidation.md b/.github/prompts/error-consolidation.md
index 0b3244152a8f1..863202d303297 100644
--- a/.github/prompts/error-consolidation.md
+++ b/.github/prompts/error-consolidation.md
@@ -12,8 +12,8 @@ Overall steps:
We're going to work through a series of files consolidating errors and warnings.
-- For the duration of this chat, all references to "destination file" refer to `using-statement-declaration-errors.md.
-- For the duration of this chat, all references to "the target theme" refer to errors and warnings related to `using` statements and `using` variable declarations. Note that the `using` keyword can also be used for a `using` directive. Don't include those error messages.
+- For the duration of this chat, all references to "destination file" refer to `async-await-errors.md.
+- For the duration of this chat, all references to "the target theme" refer to errors and warnings related to `async` function declarations and `await` expressions.
The destination file already contains a skeleton for the final output.
diff --git a/.openpublishing.redirection.core.json b/.openpublishing.redirection.core.json
index f3b4df027df30..d72d8c27a8c73 100644
--- a/.openpublishing.redirection.core.json
+++ b/.openpublishing.redirection.core.json
@@ -113,6 +113,10 @@
"source_path_from_root": "/docs/core/compatibility/core-libraries/8.0/optimizeforreading-arg.md",
"redirect_url": "/dotnet/core/compatibility/8.0"
},
+ {
+ "source_path_from_root": "/docs/core/compatibility/core-libraries/10.0/ymm-embedded-rounding.md",
+ "redirect_url": "/dotnet/core/compatibility/10.0"
+ },
{
"source_path_from_root": "/docs/core/compatibility/corefx.md",
"redirect_url": "/dotnet/core/compatibility/3.0"
@@ -199,6 +203,10 @@
"source_path_from_root": "/docs/core/compatibility/sdk/8.0/tool-rollforward.md",
"redirect_url": "/dotnet/core/compatibility/8.0"
},
+ {
+ "source_path_from_root": "/docs/core/compatibility/sdk/10.0/version-requirements.md",
+ "redirect_url": "/dotnet/core/compatibility/10.0"
+ },
{
"source_path_from_root": "/docs/core/compatibility/serialization.md",
"redirect_url": "/dotnet/core/compatibility/serialization/5.0/binaryformatter-deserialize-rewraps-exceptions"
diff --git a/.openpublishing.redirection.csharp.json b/.openpublishing.redirection.csharp.json
index b2e53879fc6d0..15f9328c66834 100644
--- a/.openpublishing.redirection.csharp.json
+++ b/.openpublishing.redirection.csharp.json
@@ -471,6 +471,26 @@
"source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs1946.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/expression-tree-restrictions"
},
+ {
+ "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs1983.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/async-await-errors"
+ },
+ {
+ "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs1986.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/async-await-errors"
+ },
+ {
+ "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs1994.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/async-await-errors"
+ },
+ {
+ "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs1996.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/async-await-errors"
+ },
+ {
+ "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs1997.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/async-await-errors"
+ },
{
"source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs1988.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/ref-modifiers-errors"
@@ -479,6 +499,26 @@
"source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs4004.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/unsafe-code-errors"
},
+ {
+ "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs4008.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/async-await-errors"
+ },
+ {
+ "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs4014.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/async-await-errors"
+ },
+ {
+ "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs4032.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/async-await-errors"
+ },
+ {
+ "source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs4033.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/async-await-errors"
+ },
+ {
+ "source_path_from_root": "/docs/csharp/misc/CS4009.md",
+ "redirect_url": "/dotnet/csharp/language-reference/compiler-messages/async-await-errors"
+ },
{
"source_path_from_root": "/docs/csharp/language-reference/compiler-messages/cs3007.md",
"redirect_url": "/dotnet/csharp/language-reference/compiler-messages/array-declaration-errors"
diff --git a/api/index.md b/api/index.md
index e15cd1a4fb7ae..5438d58656041 100644
--- a/api/index.md
+++ b/api/index.md
@@ -3,12 +3,12 @@ description: Explore Microsoft's comprehensive .NET API browser. Your ultimate r
layout: ApiBrowserPage
hide_bc: true
title: .NET API browser
-quickFilterColumn1: net-9.0,netframework-4.8.1,netstandard-2.1
-quickFilterColumn2: aspnetcore-9.0,dotnet-aspire-9.0,net-maui-9.0
+quickFilterColumn1: net-10.0,netframework-4.8.1,netstandard-2.1
+quickFilterColumn2: aspnetcore-10.0,dotnet-aspire-9.0,net-maui-10.0
quickFilterColumn3: efcore-9.0,azure-dotnet,ml-dotnet
ms.topic: landing-page
ms.custom: "updateeachrelease"
-ms.date: 01/23/2025
+ms.date: 11/07/2025
---
# .NET API browser
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index 8919371790ab8..2db33027bea89 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -4,7 +4,7 @@
| AI Foundry | NuGet [1.1.0](https://www.nuget.org/packages/Azure.AI.Projects/1.1.0) | [docs](/dotnet/api/overview/azure/AI.Projects-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Projects_1.1.0/sdk/ai/Azure.AI.Projects/) |
| AI Model Inference | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.AI.Inference/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/AI.Inference-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Inference_1.0.0-beta.5/sdk/ai/Azure.AI.Inference/) |
| Anomaly Detector | NuGet [3.0.0-preview.7](https://www.nuget.org/packages/Azure.AI.AnomalyDetector/3.0.0-preview.7) | [docs](/dotnet/api/overview/azure/AI.AnomalyDetector-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [3.0.0-preview.7](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.AnomalyDetector_3.0.0-preview.7/sdk/anomalydetector/Azure.AI.AnomalyDetector/) |
-| App Configuration | NuGet [1.6.1](https://www.nuget.org/packages/Azure.Data.AppConfiguration/1.6.1) | [docs](/dotnet/api/overview/azure/Data.AppConfiguration-readme) | GitHub [1.6.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.AppConfiguration_1.6.1/sdk/appconfiguration/Azure.Data.AppConfiguration/) |
+| App Configuration | NuGet [1.7.0](https://www.nuget.org/packages/Azure.Data.AppConfiguration/1.7.0) | [docs](/dotnet/api/overview/azure/Data.AppConfiguration-readme) | GitHub [1.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.AppConfiguration_1.7.0/sdk/appconfiguration/Azure.Data.AppConfiguration/) |
| App Configuration Provider | NuGet [8.4.0](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.AzureAppConfiguration/8.4.0) | [docs](/dotnet/api/overview/azure/Microsoft.Extensions.Configuration.AzureAppConfiguration-readme) | GitHub [8.4.0](https://github.com/Azure/AppConfiguration-DotnetProvider) |
| Attestation | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Security.Attestation/1.0.0) | [docs](/dotnet/api/overview/azure/Security.Attestation-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.Attestation_1.0.0/sdk/attestation/Azure.Security.Attestation/) |
| Azure AI Search | NuGet [11.7.0](https://www.nuget.org/packages/Azure.Search.Documents/11.7.0) | [docs](/dotnet/api/overview/azure/Search.Documents-readme) | GitHub [11.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Search.Documents_11.7.0/sdk/search/Azure.Search.Documents/) |
@@ -84,7 +84,7 @@
| Playwright | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Developer.Playwright/1.0.0) | [docs](/dotnet/api/overview/azure/Developer.Playwright-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Developer.Playwright_1.0.0/sdk/loadtestservice/Azure.Developer.Playwright/) |
| Playwright NUnit | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Developer.Playwright.NUnit/1.0.0) | [docs](/dotnet/api/overview/azure/Developer.Playwright.NUnit-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Developer.Playwright.NUnit_1.0.0/sdk/loadtestservice/Azure.Developer.Playwright.NUnit/) |
| Programmable Connectivity | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Communication.ProgrammableConnectivity/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Communication.ProgrammableConnectivity-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.ProgrammableConnectivity_1.0.0-beta.1/sdk/communication/Azure.Communication.ProgrammableConnectivity/) |
-| Provisioning | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Provisioning/1.3.0)
NuGet [1.4.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning/1.4.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning_1.3.0/sdk/provisioning/Azure.Provisioning/)
GitHub [1.4.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning_1.4.0-beta.1/sdk/provisioning/Azure.Provisioning/) |
+| Provisioning | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Provisioning/1.3.0)
NuGet [1.4.0-beta.2](https://www.nuget.org/packages/Azure.Provisioning/1.4.0-beta.2) | [docs](/dotnet/api/overview/azure/Provisioning-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning_1.3.0/sdk/provisioning/Azure.Provisioning/)
GitHub [1.4.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning_1.4.0-beta.2/sdk/provisioning/Azure.Provisioning/) |
| Provisioning - Resources | NuGet [0.2.0](https://www.nuget.org/packages/Azure.Provisioning.Resources/0.2.0) | [docs](/dotnet/api/overview/azure/Provisioning.Resources-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [0.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Resources_0.2.0/sdk/provisioning/Azure.Provisioning.Resources/) |
| Purview Account | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Analytics.Purview.Account/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Analytics.Purview.Account-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Purview.Account_1.0.0-beta.1/sdk/purview/Azure.Analytics.Purview.Account/) |
| Purview Administration | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Analytics.Purview.Administration/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Analytics.Purview.Administration-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Purview.Administration_1.0.0-beta.1/sdk/purview/Azure.Analytics.Purview.Administration/) |
@@ -116,8 +116,9 @@
| Text Translation | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Translation.Text/1.0.0) | [docs](/dotnet/api/overview/azure/AI.Translation.Text-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Translation.Text_1.0.0/sdk/translation/Azure.AI.Translation.Text/) |
| Time Series Insights | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.IoT.TimeSeriesInsights/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/IoT.TimeSeriesInsights-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.IoT.TimeSeriesInsights_1.0.0-beta.1/sdk/timeseriesinsights/Azure.IoT.TimeSeriesInsights/) |
| TimeZone | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Maps.TimeZones/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Maps.TimeZones-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Maps.TimeZones_1.0.0-beta.1/sdk/maps/Azure.Maps.TimeZones/) |
-| unknown | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.AI.AgentServer.Contracts/1.0.0-beta.1) | | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.AgentServer.Contracts_1.0.0-beta.1/sdk/agentserver/Azure.AI.AgentServer.Contracts/) |
-| unknown | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.AI.AgentServer.Core/1.0.0-beta.1) | | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.AgentServer.Core_1.0.0-beta.1/sdk/agentserver/Azure.AI.AgentServer.Core/) |
+| unknown | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.AI.AgentServer.AgentFramework/1.0.0-beta.3) | | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.AgentServer.AgentFramework_1.0.0-beta.3/sdk/agentserver/Azure.AI.AgentServer.AgentFramework/) |
+| unknown | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.AI.AgentServer.Contracts/1.0.0-beta.3) | | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.AgentServer.Contracts_1.0.0-beta.3/sdk/agentserver/Azure.AI.AgentServer.Contracts/) |
+| unknown | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.AI.AgentServer.Core/1.0.0-beta.3) | | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.AgentServer.Core_1.0.0-beta.3/sdk/agentserver/Azure.AI.AgentServer.Core/) |
| Vision Common | NuGet [0.15.1-beta.1](https://www.nuget.org/packages/Azure.AI.Vision.Common/0.15.1-beta.1) | | GitHub [0.15.1-beta.1](https://msasg.visualstudio.com/Skyman/_git/Carbon) |
| Voice Live | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.VoiceLive/1.0.0) | [docs](/dotnet/api/overview/azure/AI.VoiceLive-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.VoiceLive_1.0.0/sdk/ai/Azure.AI.VoiceLive/) |
| WCF Storage Queues | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Microsoft.WCF.Azure.StorageQueues/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.WCF.Azure.StorageQueues-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.WCF.Azure.StorageQueues_1.0.0-beta.1/sdk/extension-wcf/Microsoft.WCF.Azure.StorageQueues/) |
@@ -247,7 +248,7 @@
| Resource Management - Digital Twins | NuGet [1.3.1](https://www.nuget.org/packages/Azure.ResourceManager.DigitalTwins/1.3.1) | [docs](/dotnet/api/overview/azure/ResourceManager.DigitalTwins-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DigitalTwins_1.3.1/sdk/digitaltwins/Azure.ResourceManager.DigitalTwins/) |
| Resource Management - Disconnectedoperations | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.DisconnectedOperations/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.DisconnectedOperations-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DisconnectedOperations_1.0.0-beta.1/sdk/disconnectedoperations/Azure.ResourceManager.DisconnectedOperations/) |
| Resource Management - DNS | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.Dns/1.1.1)
NuGet [1.2.0-beta.2](https://www.nuget.org/packages/Azure.ResourceManager.Dns/1.2.0-beta.2) | [docs](/dotnet/api/overview/azure/ResourceManager.Dns-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Dns_1.1.1/sdk/dns/Azure.ResourceManager.Dns/)
GitHub [1.2.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Dns_1.2.0-beta.2/sdk/dns/Azure.ResourceManager.Dns/) |
-| Resource Management - DNS Resolver | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.DnsResolver/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.DnsResolver-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DnsResolver_1.2.0/sdk/dnsresolver/Azure.ResourceManager.DnsResolver/) |
+| Resource Management - DNS Resolver | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.DnsResolver/1.2.0)
NuGet [1.3.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.DnsResolver/1.3.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.DnsResolver-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DnsResolver_1.2.0/sdk/dnsresolver/Azure.ResourceManager.DnsResolver/)
GitHub [1.3.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DnsResolver_1.3.0-beta.1/sdk/dnsresolver/Azure.ResourceManager.DnsResolver/) |
| Resource Management - Durabletask | NuGet [1.0.0](https://www.nuget.org/packages/Azure.ResourceManager.DurableTask/1.0.0) | [docs](/dotnet/api/overview/azure/ResourceManager.DurableTask-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DurableTask_1.0.0/sdk/durabletask/Azure.ResourceManager.DurableTask/) |
| Resource Management - Dynatrace | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.Dynatrace/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Dynatrace-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Dynatrace_1.1.1/sdk/dynatrace/Azure.ResourceManager.Dynatrace/) |
| Resource Management - Edge Order | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.EdgeOrder/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.EdgeOrder-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.EdgeOrder_1.1.1/sdk/edgeorder/Azure.ResourceManager.EdgeOrder/) |
diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md
index 46720ff7e9774..a516592ec58f2 100644
--- a/docs/azure/includes/dotnet-new.md
+++ b/docs/azure/includes/dotnet-new.md
@@ -4,7 +4,7 @@
| AI Foundry | NuGet [1.1.0](https://www.nuget.org/packages/Azure.AI.Projects/1.1.0) | [docs](/dotnet/api/overview/azure/AI.Projects-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Projects_1.1.0/sdk/ai/Azure.AI.Projects/) |
| AI Model Inference | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.AI.Inference/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/AI.Inference-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Inference_1.0.0-beta.5/sdk/ai/Azure.AI.Inference/) |
| Anomaly Detector | NuGet [3.0.0-preview.7](https://www.nuget.org/packages/Azure.AI.AnomalyDetector/3.0.0-preview.7) | [docs](/dotnet/api/overview/azure/AI.AnomalyDetector-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [3.0.0-preview.7](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.AnomalyDetector_3.0.0-preview.7/sdk/anomalydetector/Azure.AI.AnomalyDetector/) |
-| App Configuration | NuGet [1.6.1](https://www.nuget.org/packages/Azure.Data.AppConfiguration/1.6.1) | [docs](/dotnet/api/overview/azure/Data.AppConfiguration-readme) | GitHub [1.6.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.AppConfiguration_1.6.1/sdk/appconfiguration/Azure.Data.AppConfiguration/) |
+| App Configuration | NuGet [1.7.0](https://www.nuget.org/packages/Azure.Data.AppConfiguration/1.7.0) | [docs](/dotnet/api/overview/azure/Data.AppConfiguration-readme) | GitHub [1.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.AppConfiguration_1.7.0/sdk/appconfiguration/Azure.Data.AppConfiguration/) |
| App Configuration Provider | NuGet [8.4.0](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.AzureAppConfiguration/8.4.0) | [docs](/dotnet/api/overview/azure/Microsoft.Extensions.Configuration.AzureAppConfiguration-readme) | GitHub [8.4.0](https://github.com/Azure/AppConfiguration-DotnetProvider) |
| Attestation | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Security.Attestation/1.0.0) | [docs](/dotnet/api/overview/azure/Security.Attestation-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.Attestation_1.0.0/sdk/attestation/Azure.Security.Attestation/) |
| Azure AI Search | NuGet [11.7.0](https://www.nuget.org/packages/Azure.Search.Documents/11.7.0) | [docs](/dotnet/api/overview/azure/Search.Documents-readme) | GitHub [11.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Search.Documents_11.7.0/sdk/search/Azure.Search.Documents/) |
@@ -90,7 +90,7 @@
| Playwright | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Developer.Playwright/1.0.0) | [docs](/dotnet/api/overview/azure/Developer.Playwright-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Developer.Playwright_1.0.0/sdk/loadtestservice/Azure.Developer.Playwright/) |
| Playwright NUnit | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Developer.Playwright.NUnit/1.0.0) | [docs](/dotnet/api/overview/azure/Developer.Playwright.NUnit-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Developer.Playwright.NUnit_1.0.0/sdk/loadtestservice/Azure.Developer.Playwright.NUnit/) |
| Programmable Connectivity | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Communication.ProgrammableConnectivity/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Communication.ProgrammableConnectivity-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.ProgrammableConnectivity_1.0.0-beta.1/sdk/communication/Azure.Communication.ProgrammableConnectivity/) |
-| Provisioning | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Provisioning/1.3.0)
NuGet [1.4.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning/1.4.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning_1.3.0/sdk/provisioning/Azure.Provisioning/)
GitHub [1.4.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning_1.4.0-beta.1/sdk/provisioning/Azure.Provisioning/) |
+| Provisioning | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Provisioning/1.3.0)
NuGet [1.4.0-beta.2](https://www.nuget.org/packages/Azure.Provisioning/1.4.0-beta.2) | [docs](/dotnet/api/overview/azure/Provisioning-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning_1.3.0/sdk/provisioning/Azure.Provisioning/)
GitHub [1.4.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning_1.4.0-beta.2/sdk/provisioning/Azure.Provisioning/) |
| Provisioning - Resources | NuGet [0.2.0](https://www.nuget.org/packages/Azure.Provisioning.Resources/0.2.0) | [docs](/dotnet/api/overview/azure/Provisioning.Resources-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [0.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.Resources_0.2.0/sdk/provisioning/Azure.Provisioning.Resources/) |
| Purview Account | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Analytics.Purview.Account/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Analytics.Purview.Account-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Purview.Account_1.0.0-beta.1/sdk/purview/Azure.Analytics.Purview.Account/) |
| Purview Administration | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Analytics.Purview.Administration/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Analytics.Purview.Administration-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Analytics.Purview.Administration_1.0.0-beta.1/sdk/purview/Azure.Analytics.Purview.Administration/) |
@@ -124,8 +124,9 @@
| Text Translation | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.Translation.Text/1.0.0) | [docs](/dotnet/api/overview/azure/AI.Translation.Text-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Translation.Text_1.0.0/sdk/translation/Azure.AI.Translation.Text/) |
| Time Series Insights | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.IoT.TimeSeriesInsights/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/IoT.TimeSeriesInsights-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.IoT.TimeSeriesInsights_1.0.0-beta.1/sdk/timeseriesinsights/Azure.IoT.TimeSeriesInsights/) |
| TimeZone | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.Maps.TimeZones/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/Maps.TimeZones-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Maps.TimeZones_1.0.0-beta.1/sdk/maps/Azure.Maps.TimeZones/) |
-| unknown | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.AI.AgentServer.Contracts/1.0.0-beta.1) | | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.AgentServer.Contracts_1.0.0-beta.1/sdk/agentserver/Azure.AI.AgentServer.Contracts/) |
-| unknown | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.AI.AgentServer.Core/1.0.0-beta.1) | | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.AgentServer.Core_1.0.0-beta.1/sdk/agentserver/Azure.AI.AgentServer.Core/) |
+| unknown | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.AI.AgentServer.AgentFramework/1.0.0-beta.3) | | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.AgentServer.AgentFramework_1.0.0-beta.3/sdk/agentserver/Azure.AI.AgentServer.AgentFramework/) |
+| unknown | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.AI.AgentServer.Contracts/1.0.0-beta.3) | | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.AgentServer.Contracts_1.0.0-beta.3/sdk/agentserver/Azure.AI.AgentServer.Contracts/) |
+| unknown | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.AI.AgentServer.Core/1.0.0-beta.3) | | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.AgentServer.Core_1.0.0-beta.3/sdk/agentserver/Azure.AI.AgentServer.Core/) |
| Video Analyzer Edge | NuGet [1.0.0-beta.6](https://www.nuget.org/packages/Azure.Media.VideoAnalyzer.Edge/1.0.0-beta.6) | [docs](/dotnet/api/overview/azure/Media.VideoAnalyzer.Edge-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Media.VideoAnalyzer.Edge_1.0.0-beta.6/sdk/videoanalyzer/Azure.Media.VideoAnalyzer.Edge/) |
| Vision Common | NuGet [0.15.1-beta.1](https://www.nuget.org/packages/Azure.AI.Vision.Common/0.15.1-beta.1) | | GitHub [0.15.1-beta.1](https://msasg.visualstudio.com/Skyman/_git/Carbon) |
| Voice Live | NuGet [1.0.0](https://www.nuget.org/packages/Azure.AI.VoiceLive/1.0.0) | [docs](/dotnet/api/overview/azure/AI.VoiceLive-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.VoiceLive_1.0.0/sdk/ai/Azure.AI.VoiceLive/) |
@@ -258,7 +259,7 @@
| Resource Management - Digital Twins | NuGet [1.3.1](https://www.nuget.org/packages/Azure.ResourceManager.DigitalTwins/1.3.1) | [docs](/dotnet/api/overview/azure/ResourceManager.DigitalTwins-readme) | GitHub [1.3.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DigitalTwins_1.3.1/sdk/digitaltwins/Azure.ResourceManager.DigitalTwins/) |
| Resource Management - Disconnectedoperations | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.DisconnectedOperations/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.DisconnectedOperations-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DisconnectedOperations_1.0.0-beta.1/sdk/disconnectedoperations/Azure.ResourceManager.DisconnectedOperations/) |
| Resource Management - DNS | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.Dns/1.1.1)
NuGet [1.2.0-beta.2](https://www.nuget.org/packages/Azure.ResourceManager.Dns/1.2.0-beta.2) | [docs](/dotnet/api/overview/azure/ResourceManager.Dns-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Dns_1.1.1/sdk/dns/Azure.ResourceManager.Dns/)
GitHub [1.2.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Dns_1.2.0-beta.2/sdk/dns/Azure.ResourceManager.Dns/) |
-| Resource Management - DNS Resolver | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.DnsResolver/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.DnsResolver-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DnsResolver_1.2.0/sdk/dnsresolver/Azure.ResourceManager.DnsResolver/) |
+| Resource Management - DNS Resolver | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.DnsResolver/1.2.0)
NuGet [1.3.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.DnsResolver/1.3.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.DnsResolver-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DnsResolver_1.2.0/sdk/dnsresolver/Azure.ResourceManager.DnsResolver/)
GitHub [1.3.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DnsResolver_1.3.0-beta.1/sdk/dnsresolver/Azure.ResourceManager.DnsResolver/) |
| Resource Management - Durabletask | NuGet [1.0.0](https://www.nuget.org/packages/Azure.ResourceManager.DurableTask/1.0.0) | [docs](/dotnet/api/overview/azure/ResourceManager.DurableTask-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DurableTask_1.0.0/sdk/durabletask/Azure.ResourceManager.DurableTask/) |
| Resource Management - Dynatrace | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.Dynatrace/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Dynatrace-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Dynatrace_1.1.1/sdk/dynatrace/Azure.ResourceManager.Dynatrace/) |
| Resource Management - Edge Order | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.EdgeOrder/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.EdgeOrder-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.EdgeOrder_1.1.1/sdk/edgeorder/Azure.ResourceManager.EdgeOrder/) |
diff --git a/docs/core/compatibility/10.0.md b/docs/core/compatibility/10.0.md
index 4960a56abbb54..4a91f0a4924ed 100644
--- a/docs/core/compatibility/10.0.md
+++ b/docs/core/compatibility/10.0.md
@@ -17,58 +17,57 @@ If you're migrating an app to .NET 10, the breaking changes listed here might af
## ASP.NET Core
-| Title | Type of change | Introduced version |
-|-------|-------------------|--------------------|
-| [Cookie login redirects disabled for known API endpoints](aspnet-core/10/cookie-authentication-api-endpoints.md) | Behavioral change | Preview 7 |
-| [Deprecation of WithOpenApi extension method](aspnet-core/10/withopenapi-deprecated.md) | Source incompatible | Preview 7 |
-| [Exception diagnostics suppressed when TryHandleAsync returns true](aspnet-core/10/exception-handler-diagnostics-suppressed.md) | Behavioral change | Preview 7 |
-| [IActionContextAccessor and ActionContextAccessor are obsolete](aspnet-core/10/iactioncontextaccessor-obsolete.md) | Source incompatible/behavioral change | Preview 7 |
-| [IncludeOpenAPIAnalyzers property and MVC API analyzers are deprecated](aspnet-core/10/openapi-analyzers-deprecated.md) | Source incompatible | Preview 7 |
-| [IPNetwork and ForwardedHeadersOptions.KnownNetworks are obsolete](aspnet-core/10/ipnetwork-knownnetworks-obsolete.md) | Source incompatible | Preview 7 |
-| [Microsoft.Extensions.ApiDescription.Client package deprecated](aspnet-core/10/apidescription-client-deprecated.md) | Source incompatible | Preview 7 |
-| [Razor run-time compilation is obsolete](aspnet-core/10/razor-runtime-compilation-obsolete.md) | Source incompatible | Preview 7 |
-| [WebHostBuilder, IWebHost, and WebHost are obsolete](aspnet-core/10/webhostbuilder-deprecated.md) | Source incompatible | RC 1 |
+| Title | Type of change |
+|-------|-------------------|
+| [Cookie login redirects disabled for known API endpoints](aspnet-core/10/cookie-authentication-api-endpoints.md) | Behavioral change |
+| [Deprecation of WithOpenApi extension method](aspnet-core/10/withopenapi-deprecated.md) | Source incompatible |
+| [Exception diagnostics suppressed when TryHandleAsync returns true](aspnet-core/10/exception-handler-diagnostics-suppressed.md) | Behavioral change |
+| [IActionContextAccessor and ActionContextAccessor are obsolete](aspnet-core/10/iactioncontextaccessor-obsolete.md) | Source incompatible/behavioral change |
+| [IncludeOpenAPIAnalyzers property and MVC API analyzers are deprecated](aspnet-core/10/openapi-analyzers-deprecated.md) | Source incompatible |
+| [IPNetwork and ForwardedHeadersOptions.KnownNetworks are obsolete](aspnet-core/10/ipnetwork-knownnetworks-obsolete.md) | Source incompatible |
+| [Microsoft.Extensions.ApiDescription.Client package deprecated](aspnet-core/10/apidescription-client-deprecated.md) | Source incompatible |
+| [Razor run-time compilation is obsolete](aspnet-core/10/razor-runtime-compilation-obsolete.md) | Source incompatible |
+| [WebHostBuilder, IWebHost, and WebHost are obsolete](aspnet-core/10/webhostbuilder-deprecated.md) | Source incompatible |
## Containers
-| Title | Type of change | Introduced version |
-|--------------------------------------------------------------------------------|-------------------|--------------------|
-| [Default .NET images use Ubuntu](containers/10.0/default-images-use-ubuntu.md) | Behavioral change | Preview 1 |
+| Title | Type of change |
+|--------------------------------------------------------------------------------|-------------------|
+| [Default .NET images use Ubuntu](containers/10.0/default-images-use-ubuntu.md) | Behavioral change |
## Core .NET libraries
-| Title | Type of change | Introduced version |
-|-------|-------------------|--------------------|
-| [ActivitySource.CreateActivity and ActivitySource.StartActivity behavior change](core-libraries/10.0/activity-sampling.md) | Behavioral change | Preview 1 |
-| [Arm64 SVE nonfaulting loads require mask](core-libraries/10.0/sve-nonfaulting-loads-mask-parameter.md) | Binary/source incompatible | Preview 1 |
-| [BufferedStream.WriteByte no longer performs implicit flush](core-libraries/10.0/bufferedstream-writebyte-flush.md) | Behavioral change | Preview 4 |
-| [C# 14 overload resolution with span parameters](core-libraries/10.0/csharp-overload-resolution.md) | Behavioral change | Preview 1 |
-| [Consistent shift behavior in generic math](core-libraries/10.0/generic-math.md) | Behavioral change | Preview 1 |
-| [Default trace context propagator updated to W3C standard](core-libraries/10.0/default-trace-context-propagator.md) | Behavioral change | Preview 4 |
-| [DriveInfo.DriveFormat returns Linux filesystem types](core-libraries/10.0/driveinfo-driveformat-linux.md) | Behavioral change | Preview 6 |
-| [DynamicallyAccessedMembers annotation removed from DefaultValueAttribute ctor](core-libraries/10.0/defaultvalueattribute-dynamically-accessed-members.md) | Binary/source incompatible | Preview 7 |
-| [Explicit struct Size disallowed with InlineArray](core-libraries/10.0/inlinearray-explicit-size-disallowed.md) | Binary incompatible | Preview 7 |
-| [FilePatternMatch.Stem changed to non-nullable](core-libraries/10.0/filepatternmatch-stem-nonnullable.md) | Source incompatible/behavioral change | RC 1 |
-| [GnuTarEntry and PaxTarEntry no longer includes atime and ctime by default](core-libraries/10.0/tar-atime-ctime-default.md) | Behavioral change | Preview 5 |
-| [LDAP DirectoryControl parsing is now more stringent](core-libraries/10.0/ldap-directorycontrol-parsing.md) | Behavioral change | Preview 1 |
-| [MacCatalyst version normalization](core-libraries/10.0/maccatalyst-version-normalization.md) | Behavioral change | Preview 1 |
-| [.NET runtime no longer provides default termination signal handlers](core-libraries/10.0/sigterm-signal-handler.md) | Behavioral change | Preview 5 |
-| [System.Linq.AsyncEnumerable included in core libraries](core-libraries/10.0/asyncenumerable.md) | Source incompatible | Preview 1 |
-| [Type.MakeGenericSignatureType argument validation](reflection/10/makegeneric-signaturetype-validation.md) | Behavioral change | Preview 3 |
-| [YMM embedded rounding removed from AVX10.2](core-libraries/10.0/ymm-embedded-rounding.md) | Behavioral change | Preview 5 |
+| Title | Type of change |
+|-------|-------------------|
+| [ActivitySource.CreateActivity and ActivitySource.StartActivity behavior change](core-libraries/10.0/activity-sampling.md) | Behavioral change |
+| [Arm64 SVE nonfaulting loads require mask](core-libraries/10.0/sve-nonfaulting-loads-mask-parameter.md) | Binary/source incompatible |
+| [BufferedStream.WriteByte no longer performs implicit flush](core-libraries/10.0/bufferedstream-writebyte-flush.md) | Behavioral change |
+| [C# 14 overload resolution with span parameters](core-libraries/10.0/csharp-overload-resolution.md) | Behavioral change |
+| [Consistent shift behavior in generic math](core-libraries/10.0/generic-math.md) | Behavioral change |
+| [Default trace context propagator updated to W3C standard](core-libraries/10.0/default-trace-context-propagator.md) | Behavioral change |
+| [DriveInfo.DriveFormat returns Linux filesystem types](core-libraries/10.0/driveinfo-driveformat-linux.md) | Behavioral change |
+| [DynamicallyAccessedMembers annotation removed from DefaultValueAttribute ctor](core-libraries/10.0/defaultvalueattribute-dynamically-accessed-members.md) | Binary/source incompatible |
+| [Explicit struct Size disallowed with InlineArray](core-libraries/10.0/inlinearray-explicit-size-disallowed.md) | Binary incompatible |
+| [FilePatternMatch.Stem changed to non-nullable](core-libraries/10.0/filepatternmatch-stem-nonnullable.md) | Source incompatible/behavioral change |
+| [GnuTarEntry and PaxTarEntry no longer includes atime and ctime by default](core-libraries/10.0/tar-atime-ctime-default.md) | Behavioral change |
+| [LDAP DirectoryControl parsing is now more stringent](core-libraries/10.0/ldap-directorycontrol-parsing.md) | Behavioral change |
+| [MacCatalyst version normalization](core-libraries/10.0/maccatalyst-version-normalization.md) | Behavioral change |
+| [.NET runtime no longer provides default termination signal handlers](core-libraries/10.0/sigterm-signal-handler.md) | Behavioral change |
+| [System.Linq.AsyncEnumerable included in core libraries](core-libraries/10.0/asyncenumerable.md) | Source incompatible |
+| [Type.MakeGenericSignatureType argument validation](reflection/10/makegeneric-signaturetype-validation.md) | Behavioral change |
## Cryptography
-| Title | Type of change | Introduced version |
-|-------|-------------------|--------------------|
-| [CompositeMLDsa updated to draft-08](cryptography/10.0/composite-mldsa-draft-08.md) | Behavioral change | 10.0.0 |
-| [CoseSigner.Key can be null](cryptography/10.0/cosesigner-key-null.md) | Behavioral/source incompatible change | Preview 7 |
-| [MLDsa and SlhDsa 'SecretKey' members renamed](cryptography/10.0/mldsa-slhdsa-secretkey-to-privatekey.md) | Source incompatible | RC 1 |
-| [OpenSSL cryptographic primitives aren't supported on macOS](cryptography/10.0/openssl-macos-unsupported.md) | Behavioral change | Preview 6 |
-| [OpenSSL 1.1.1 or later required on Unix](cryptography/10.0/openssl-version-requirement.md) | Behavioral change | GA |
-| [X500DistinguishedName validation is stricter](cryptography/10.0/x500distinguishedname-validation.md) | Behavioral change | Preview 1 |
-| [X509Certificate and PublicKey key parameters can be null](cryptography/10.0/x509-publickey-null.md) | Behavioral/source incompatible change | Preview 3 |
-| [Environment variable renamed to DOTNET_OPENSSL_VERSION_OVERRIDE](cryptography/10.0/version-override.md) | Behavioral change | Preview 1 |
+| Title | Type of change |
+|-------|-------------------|
+| [CompositeMLDsa updated to draft-08](cryptography/10.0/composite-mldsa-draft-08.md) | Behavioral change |
+| [CoseSigner.Key can be null](cryptography/10.0/cosesigner-key-null.md) | Behavioral/source incompatible change |
+| [MLDsa and SlhDsa 'SecretKey' members renamed](cryptography/10.0/mldsa-slhdsa-secretkey-to-privatekey.md) | Source incompatible |
+| [OpenSSL cryptographic primitives aren't supported on macOS](cryptography/10.0/openssl-macos-unsupported.md) | Behavioral change |
+| [OpenSSL 1.1.1 or later required on Unix](cryptography/10.0/openssl-version-requirement.md) | Behavioral change |
+| [X500DistinguishedName validation is stricter](cryptography/10.0/x500distinguishedname-validation.md) | Behavioral change |
+| [X509Certificate and PublicKey key parameters can be null](cryptography/10.0/x509-publickey-null.md) | Behavioral/source incompatible change |
+| [Environment variable renamed to DOTNET_OPENSSL_VERSION_OVERRIDE](cryptography/10.0/version-override.md) | Behavioral change |
## Entity Framework Core
@@ -76,90 +75,88 @@ If you're migrating an app to .NET 10, the breaking changes listed here might af
## Extensions
-| Title | Type of change | Introduced version |
-|-------|---------------------|--------------------|
-| [BackgroundService runs all of ExecuteAsync as a Task](extensions/10.0/backgroundservice-executeasync-task.md) | Behavioral change | Preview 1 |
-| [Null values preserved in configuration](extensions/10.0/configuration-null-values-preserved.md) | Behavioral change | Preview 7 |
-| [Message no longer duplicated in Console log output](extensions/10.0/console-json-logging-duplicate-messages.md) | Behavioral change | Preview 7 |
-| [ProviderAliasAttribute moved to Microsoft.Extensions.Logging.Abstractions assembly](extensions/10.0/provideraliasattribute-moved-assembly.md) | Source incompatible | Preview 4 |
-| [Removed DynamicallyAccessedMembers annotation from trim-unsafe Microsoft.Extensions.Configuration code](extensions/10.0/dynamically-accessed-members-configuration.md) | Binary incompatible | Preview 6 |
+| Title | Type of change |
+|-------|---------------------|
+| [BackgroundService runs all of ExecuteAsync as a Task](extensions/10.0/backgroundservice-executeasync-task.md) | Behavioral change |
+| [Null values preserved in configuration](extensions/10.0/configuration-null-values-preserved.md) | Behavioral change |
+| [Message no longer duplicated in Console log output](extensions/10.0/console-json-logging-duplicate-messages.md) | Behavioral change |
+| [ProviderAliasAttribute moved to Microsoft.Extensions.Logging.Abstractions assembly](extensions/10.0/provideraliasattribute-moved-assembly.md) | Source incompatible |
+| [Removed DynamicallyAccessedMembers annotation from trim-unsafe Microsoft.Extensions.Configuration code](extensions/10.0/dynamically-accessed-members-configuration.md) | Binary incompatible |
## Globalization
-| Title | Type of change | Introduced version |
-|-------|-------------------|--------------------|
-| [Environment variable renamed to DOTNET_ICU_VERSION_OVERRIDE](globalization/10.0/version-override.md) | Behavioral change | Preview 1 |
+| Title | Type of change |
+|-------|-------------------|
+| [Environment variable renamed to DOTNET_ICU_VERSION_OVERRIDE](globalization/10.0/version-override.md) | Behavioral change |
## Install tool
-| Title | Type of change | Introduced version |
-|-------|-------------------|--------------------|
-| [dotnet.acquire API for VS Code no longer always downloads latest](install-tool/3.0.0/vscode-dotnet-acquire-no-latest.md) | Behavioral change | .NET Install Tool 3.0.0 |
+| Title | Type of change |
+|-------|-------------------|
+| [dotnet.acquire API for VS Code no longer always downloads latest](install-tool/3.0.0/vscode-dotnet-acquire-no-latest.md) | Behavioral change |
## Interop
-| Title | Type of change | Introduced version |
-|-------|-------------------|--------------------|
-| [Single-file apps no longer look for native libraries in executable directory](interop/10.0/native-library-search.md) | Behavioral change | Preview 6 |
-| [Specifying DllImportSearchPath.AssemblyDirectory only searches the assembly directory](interop/10.0/search-assembly-directory.md) | Behavioral change | Preview 5 |
+| Title | Type of change |
+|-------|-------------------|
+| [Single-file apps no longer look for native libraries in executable directory](interop/10.0/native-library-search.md) | Behavioral change |
+| [Specifying DllImportSearchPath.AssemblyDirectory only searches the assembly directory](interop/10.0/search-assembly-directory.md) | Behavioral change |
## Networking
-| Title | Type of change | Introduced version |
-|-------|-------------------|--------------------|
-| [HTTP/3 support disabled by default with PublishTrimmed](networking/10.0/http3-disabled-with-publishtrimmed.md) | Source incompatible | Preview 6 |
-| [Streaming HTTP responses enabled by default in browser HTTP clients](networking/10.0/default-http-streaming.md) | Behavioral change | Preview 3 |
-| [`Uri` length limits removed](networking/10.0/uri-length-limits-removed.md) | Behavioral change | Preview 7 |
+| Title | Type of change |
+|-------|-------------------|
+| [HTTP/3 support disabled by default with PublishTrimmed](networking/10.0/http3-disabled-with-publishtrimmed.md) | Source incompatible |
+| [Streaming HTTP responses enabled by default in browser HTTP clients](networking/10.0/default-http-streaming.md) | Behavioral change |
+| [`Uri` length limits removed](networking/10.0/uri-length-limits-removed.md) | Behavioral change |
## SDK and MSBuild
-| Title | Type of change | Introduced version |
-|-------|-------------------|--------------------|
-| [.NET CLI `--interactive` defaults to `true` in user scenarios](sdk/10.0/dotnet-cli-interactive.md) | Behavioral change | Preview 3 |
-| [`dotnet` CLI commands log non-command-relevant data to stderr](sdk/10.0/dotnet-cli-stderr-output.md) | Behavioral change | RC 2 |
-| [.NET tool packaging creates RuntimeIdentifier-specific tool packages](sdk/10.0/dotnet-tool-pack-publish.md) | Behavioral change | Preview 6 |
-| [Code coverage EnableDynamicNativeInstrumentation defaults to false](sdk/10.0/code-coverage-dynamic-native-instrumentation.md) | Behavioral change | GA |
-| [Default workload configuration from 'loose manifests' to 'workload sets' mode](sdk/10.0/default-workload-config.md) | Behavioral change | Preview 2 |
-| [dnx.ps1 file is no longer included in .NET SDK](sdk/10.0/dnx-ps1-removed.md) | Source incompatible | GA |
-| [Double quotes in file-level directives are disallowed](sdk/10.0/file-level-directive-double-quotes.md) | Source incompatible | GA |
-| [`dotnet new sln` defaults to SLNX file format](sdk/10.0/dotnet-new-sln-slnx-default.md) | Behavioral change | RC 1 |
-| [`dotnet package list` performs restore](sdk/10.0/dotnet-package-list-restore.md) | Behavioral change | Preview 4 |
-| [`dotnet restore` audits transitive packages](sdk/10.0/nugetaudit-transitive-packages.md) | Behavioral change | Preview 3 |
-| [`dotnet tool install --local` creates manifest by default](sdk/10.0/dotnet-tool-install-local-manifest.md) | Behavioral change | Preview 7 |
-| [`dotnet watch` logs to stderr instead of stdout](sdk/10.0/dotnet-watch-stderr.md) | Behavioral change | RC 2 |
-| [project.json not supported in `dotnet restore`](sdk/10.0/dotnet-restore-project-json-unsupported.md) | Source incompatible | Preview 7 |
-| [SHA-1 fingerprint support deprecated in `dotnet nuget sign`](sdk/10.0/dotnet-nuget-sign-sha1-deprecated.md) | Behavioral change | Preview 1 |
-| [MSBUILDCUSTOMBUILDEVENTWARNING escape hatch removed](sdk/10.0/custom-build-event-warning.md) | Behavioral change | Preview 1 |
-| [MSBuild custom culture resource handling](sdk/10.0/msbuild-custom-culture.md) | Behavioral change | Preview 1 |
-| [NU1510 is raised for direct references pruned by NuGet](sdk/10.0/nu1510-pruned-references.md) | Source incompatible | Preview 1 |
-| [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) | 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 |
+| Title | Type of change |
+|-------|-------------------|
+| [.NET CLI `--interactive` defaults to `true` in user scenarios](sdk/10.0/dotnet-cli-interactive.md) | Behavioral change |
+| [`dotnet` CLI commands log non-command-relevant data to stderr](sdk/10.0/dotnet-cli-stderr-output.md) | Behavioral change |
+| [.NET tool packaging creates RuntimeIdentifier-specific tool packages](sdk/10.0/dotnet-tool-pack-publish.md) | Behavioral change |
+| [Default workload configuration from 'loose manifests' to 'workload sets' mode](sdk/10.0/default-workload-config.md) | Behavioral change |
+| [Code coverage EnableDynamicNativeInstrumentation defaults to false](sdk/10.0/code-coverage-dynamic-native-instrumentation.md) | Behavioral change |
+| [dnx.ps1 file is no longer included in .NET SDK](sdk/10.0/dnx-ps1-removed.md) | Source incompatible |
+| [`dotnet new sln` defaults to SLNX file format](sdk/10.0/dotnet-new-sln-slnx-default.md) | Behavioral change |
+| [`dotnet package list` performs restore](sdk/10.0/dotnet-package-list-restore.md) | Behavioral change |
+| [`dotnet restore` audits transitive packages](sdk/10.0/nugetaudit-transitive-packages.md) | Behavioral change |
+| [`dotnet tool install --local` creates manifest by default](sdk/10.0/dotnet-tool-install-local-manifest.md) | Behavioral change |
+| [`dotnet watch` logs to stderr instead of stdout](sdk/10.0/dotnet-watch-stderr.md) | Behavioral change |
+| [project.json not supported in `dotnet restore`](sdk/10.0/dotnet-restore-project-json-unsupported.md) | Source incompatible |
+| [SHA-1 fingerprint support deprecated in `dotnet nuget sign`](sdk/10.0/dotnet-nuget-sign-sha1-deprecated.md) | Behavioral change |
+| [MSBUILDCUSTOMBUILDEVENTWARNING escape hatch removed](sdk/10.0/custom-build-event-warning.md) | Behavioral change |
+| [MSBuild custom culture resource handling](sdk/10.0/msbuild-custom-culture.md) | Behavioral change |
+| [NU1510 is raised for direct references pruned by NuGet](sdk/10.0/nu1510-pruned-references.md) | Source incompatible |
+| [NuGet packages with no runtime assets aren't included in deps.json](sdk/10.0/deps-json-trimmed-packages.md) | Source incompatible |
+| [PackageReference without a version raises an error](sdk/10.0/nu1015-packagereference-version.md) | Behavioral change |
+| [PrunePackageReference privatizes direct prunable references](sdk/10.0/prune-packagereference-privateassets.md) | Behavioral change |
+| [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 |
+| [NUGET_ENABLE_ENHANCED_HTTP_RETRY environment variable removed](sdk/10.0/nuget-enhanced-http-retry-removed.md) | Behavioral change |
+| [NuGet logs an error for invalid package IDs](sdk/10.0/nuget-packageid-validation.md) | Behavioral change |
## Serialization
-| Title | Type of change | Introduced version |
-|-------|-------------------|--------------------|
-| [XmlSerializer no longer ignores properties marked with ObsoleteAttribute](serialization/10/xmlserializer-obsolete-properties.md) | Behavioral change | Preview 1 |
+| Title | Type of change |
+|-------|-------------------|
+| [XmlSerializer no longer ignores properties marked with ObsoleteAttribute](serialization/10/xmlserializer-obsolete-properties.md) | Behavioral change |
## Windows Forms
-| Title | Type of change | Introduced version |
-|--------------------------------------------------------|---------------------|--------------------|
-| [API obsoletions](windows-forms/10.0/obsolete-apis.md) | Source incompatible | Preview 1 |
-| [Applications referencing both WPF and WinForms must disambiguate MenuItem and ContextMenu types](windows-forms/10.0/menuitem-contextmenu.md) | Source incompatible | Preview 1 |
-| [Renamed parameter in HtmlElement.InsertAdjacentElement](windows-forms/10.0/insertadjacentelement-orientation.md) | Source incompatible | Preview 1 |
-| [TreeView checkbox image truncation](windows-forms/10.0/treeview-text-location.md) | Behavioral change | Preview 1 |
-| [StatusStrip uses System RenderMode by default](windows-forms/10.0/statusstrip-renderer.md) | Behavioral change | Preview 1 |
-| [System.Drawing OutOfMemoryException changed to ExternalException](windows-forms/10.0/system-drawing-outofmemory-externalexception.md) | Behavioral change | Preview 5 |
+| Title | Type of change |
+|--------------------------------------------------------|---------------------|
+| [API obsoletions](windows-forms/10.0/obsolete-apis.md) | Source incompatible |
+| [Applications referencing both WPF and WinForms must disambiguate MenuItem and ContextMenu types](windows-forms/10.0/menuitem-contextmenu.md) | Source incompatible |
+| [Renamed parameter in HtmlElement.InsertAdjacentElement](windows-forms/10.0/insertadjacentelement-orientation.md) | Source incompatible |
+| [TreeView checkbox image truncation](windows-forms/10.0/treeview-text-location.md) | Behavioral change |
+| [StatusStrip uses System RenderMode by default](windows-forms/10.0/statusstrip-renderer.md) | Behavioral change |
+| [System.Drawing OutOfMemoryException changed to ExternalException](windows-forms/10.0/system-drawing-outofmemory-externalexception.md) | Behavioral change |
## Windows Presentation Foundation (WPF)
-| Title | Type of change | Introduced version |
-|-------|---------------------------------------|--------------------|
-| [Empty ColumnDefinitions and RowDefinitions are disallowed](wpf/10.0/empty-grid-definitions.md) | Source incompatible | Preview 5 |
-| [Incorrect usage of DynamicResource causes application crash](wpf/10.0/dynamicresource-crash.md) | Source incompatible/behavioral change | Preview 4 |
+| Title | Type of change |
+|-------|---------------------------------------|
+| [Empty ColumnDefinitions and RowDefinitions are disallowed](wpf/10.0/empty-grid-definitions.md) | Source incompatible |
+| [Incorrect usage of DynamicResource causes application crash](wpf/10.0/dynamicresource-crash.md) | Source incompatible/behavioral change |
diff --git a/docs/core/compatibility/aspnet-core/10/openapi-analyzers-deprecated.md b/docs/core/compatibility/aspnet-core/10/openapi-analyzers-deprecated.md
index 07960d9828a69..fb8c54973cd10 100644
--- a/docs/core/compatibility/aspnet-core/10/openapi-analyzers-deprecated.md
+++ b/docs/core/compatibility/aspnet-core/10/openapi-analyzers-deprecated.md
@@ -16,7 +16,7 @@ The `IncludeOpenAPIAnalyzers` MSBuild property and its associated MVC API analyz
## Previous behavior
-Previously, developers could set `true` in their Web SDK projects to enable MVC API analyzers without any warnings or deprecation notices.
+Previously, you could set `true` in your Web SDK projects to enable MVC API analyzers without any warnings or deprecation notices.
```xml
diff --git a/docs/core/compatibility/containers/10.0/default-images-use-ubuntu.md b/docs/core/compatibility/containers/10.0/default-images-use-ubuntu.md
index bba3504a2ba5a..c5df8303c9f15 100644
--- a/docs/core/compatibility/containers/10.0/default-images-use-ubuntu.md
+++ b/docs/core/compatibility/containers/10.0/default-images-use-ubuntu.md
@@ -16,15 +16,15 @@ For more information about the container image platforms available at .NET 10's
## Version introduced
-.NET 10 Preview 1
+.NET 10
## Previous behavior
-.NET 9 and earlier default tags reference images based on Debian.
+In .NET 9 and earlier versions, default tags referenced images based on Debian.
## New behavior
-Default tags reference images based on Ubuntu.
+Starting in .NET 10, default tags reference images based on Ubuntu.
## Type of breaking change
diff --git a/docs/core/compatibility/core-libraries/10.0/activity-sampling.md b/docs/core/compatibility/core-libraries/10.0/activity-sampling.md
index 04c63c8246214..c6ab8aebb859c 100644
--- a/docs/core/compatibility/core-libraries/10.0/activity-sampling.md
+++ b/docs/core/compatibility/core-libraries/10.0/activity-sampling.md
@@ -12,34 +12,34 @@ The .
+Previously, the `AsyncEnumerable` class in the [community-maintained `System.Linq.Async` package](https://www.nuget.org/packages/System.Linq.Async) provided LINQ support for .
## New behavior
@@ -40,7 +40,7 @@ If `System.Linq.Async` is consumed indirectly via another package, avoid ambigui
```xml
- compile
+ compile
```
diff --git a/docs/core/compatibility/core-libraries/10.0/bufferedstream-writebyte-flush.md b/docs/core/compatibility/core-libraries/10.0/bufferedstream-writebyte-flush.md
index ed0c749a0d2b1..85cb67150b8ca 100644
--- a/docs/core/compatibility/core-libraries/10.0/bufferedstream-writebyte-flush.md
+++ b/docs/core/compatibility/core-libraries/10.0/bufferedstream-writebyte-flush.md
@@ -3,7 +3,6 @@ title: "Breaking change - BufferedStream.WriteByte no longer performs implicit f
description: "Learn about the breaking change in .NET 10 where BufferedStream.WriteByte no longer performs an implicit flush when the internal buffer is full."
ms.date: 10/13/2025
ai-usage: ai-assisted
-ms.custom: https://github.com/dotnet/docs/issues/496356
dev_langs:
- "csharp"
- "vb"
@@ -15,7 +14,7 @@ The ` or `Span` parameters can p
## Version introduced
-.NET 10 Preview 1
+.NET 10
## Type of breaking change
diff --git a/docs/core/compatibility/core-libraries/10.0/default-trace-context-propagator.md b/docs/core/compatibility/core-libraries/10.0/default-trace-context-propagator.md
index 5a7394ef77805..5887b12bf9014 100644
--- a/docs/core/compatibility/core-libraries/10.0/default-trace-context-propagator.md
+++ b/docs/core/compatibility/core-libraries/10.0/default-trace-context-propagator.md
@@ -12,15 +12,15 @@ The default trace context propagator has been switched from the legacy propagato
## Version introduced
-.NET 10 Preview 4
+.NET 10
## Previous behavior
-The method returned an instance of the legacy propagator. By default, was set to this legacy instance.
+Previously, the method returned an instance of the legacy propagator. By default, was set to this legacy instance.
## New behavior
-The method now returns an instance of the W3C propagator. By default, is set to this W3C instance.
+Starting in .NET 10, the method returns an instance of the W3C propagator. By default, is set to this W3C instance.
Example of setting the default propagator to the legacy propagator:
@@ -30,7 +30,7 @@ DistributedContextPropagator.Current = DistributedContextPropagator.CreatePreW3C
## Type of breaking change
-This is a [behavioral change](../../categories.md#behavioral-change).
+This change is a [behavioral change](../../categories.md#behavioral-change).
## Reason for change
diff --git a/docs/core/compatibility/core-libraries/10.0/defaultvalueattribute-dynamically-accessed-members.md b/docs/core/compatibility/core-libraries/10.0/defaultvalueattribute-dynamically-accessed-members.md
index 08e7ae4048bf6..76ecf80f614c8 100644
--- a/docs/core/compatibility/core-libraries/10.0/defaultvalueattribute-dynamically-accessed-members.md
+++ b/docs/core/compatibility/core-libraries/10.0/defaultvalueattribute-dynamically-accessed-members.md
@@ -11,7 +11,7 @@ The , the parsing of objects was fairly loose:
+Previously, as a result of using , the parsing of objects was fairly loose:
- The ASN.1 tags of each value weren't checked.
- Trailing data after the end of the parsed DirectoryControl was ignored, as was trailing data within an ASN.1 SEQUENCE.
@@ -24,7 +24,7 @@ While not a breaking change, Windows always encoded ASN.1 tags with a four-byte
## New behavior
-The DirectoryControl parsing is much more stringent, and is now consistent across platforms and versions:
+Starting in .NET 10, the DirectoryControl parsing is much more stringent, and is now consistent across platforms and versions:
- ASN.1 tags are now checked.
- Trailing data is no longer permitted.
diff --git a/docs/core/compatibility/core-libraries/10.0/maccatalyst-version-normalization.md b/docs/core/compatibility/core-libraries/10.0/maccatalyst-version-normalization.md
index bd0bc72aed39a..5ae7052cf27c0 100644
--- a/docs/core/compatibility/core-libraries/10.0/maccatalyst-version-normalization.md
+++ b/docs/core/compatibility/core-libraries/10.0/maccatalyst-version-normalization.md
@@ -11,15 +11,15 @@ This update ensures that MacCatalyst version components retrieved from the OS ar
## Previous behavior
-The build component in `Version` was not previously normalized, which led to incorrect version checks on MacCatalyst when only two components (major and minor) were provided. This resulted in invalid version checks.
+Previously, the build component in `Version` was not normalized, which led to incorrect version checks on MacCatalyst when only two components (major and minor) were provided. This resulted in invalid version checks.
## New behavior
-The MacCatalyst build component is now normalized to `0`, ensuring consistent version checks. The revision component is always set to `-1`, as it is not specified on MacCatalyst or iOS.
+Starting in .NET 10, the MacCatalyst build component is normalized to `0`, ensuring consistent version checks. The revision component is always set to `-1`, as it is not specified on MacCatalyst or iOS.
## Version introduced
-.NET 10 Preview 1
+.NET 10
## Type of breaking change
diff --git a/docs/core/compatibility/core-libraries/10.0/sigterm-signal-handler.md b/docs/core/compatibility/core-libraries/10.0/sigterm-signal-handler.md
index ebfae8f1750a9..5d2899fccd8d5 100644
--- a/docs/core/compatibility/core-libraries/10.0/sigterm-signal-handler.md
+++ b/docs/core/compatibility/core-libraries/10.0/sigterm-signal-handler.md
@@ -13,7 +13,7 @@ This change reverts the termination signal handling behavior to what it used to
## Version introduced
-.NET 10 Preview 5
+.NET 10
## Previous behavior
diff --git a/docs/core/compatibility/core-libraries/10.0/sve-nonfaulting-loads-mask-parameter.md b/docs/core/compatibility/core-libraries/10.0/sve-nonfaulting-loads-mask-parameter.md
index b67428c0e94e9..2b4af4761dd0c 100644
--- a/docs/core/compatibility/core-libraries/10.0/sve-nonfaulting-loads-mask-parameter.md
+++ b/docs/core/compatibility/core-libraries/10.0/sve-nonfaulting-loads-mask-parameter.md
@@ -12,7 +12,7 @@ All Arm64 SVE nonfaulting load APIs have been updated to include a `mask` parame
## Version introduced
-.NET 10 Preview 7
+.NET 10
## Previous behavior
diff --git a/docs/core/compatibility/core-libraries/10.0/tar-atime-ctime-default.md b/docs/core/compatibility/core-libraries/10.0/tar-atime-ctime-default.md
index 49a023cfa3d9a..f124f4b6241c4 100644
--- a/docs/core/compatibility/core-libraries/10.0/tar-atime-ctime-default.md
+++ b/docs/core/compatibility/core-libraries/10.0/tar-atime-ctime-default.md
@@ -15,7 +15,7 @@ Other minor fixes have been made to to prioritize roun
## Version introduced
-.NET 10 Preview 5
+.NET 10
## Previous behavior
diff --git a/docs/core/compatibility/core-libraries/10.0/ymm-embedded-rounding.md b/docs/core/compatibility/core-libraries/10.0/ymm-embedded-rounding.md
deleted file mode 100644
index 297f26ed59de6..0000000000000
--- a/docs/core/compatibility/core-libraries/10.0/ymm-embedded-rounding.md
+++ /dev/null
@@ -1,53 +0,0 @@
----
-title: "Breaking change: YMM embedded rounding removed from AVX10.2"
-description: Learn about the .NET 10 breaking change in core .NET libraries where support for YMM embedded rounding was removed from AVX10.2.
-ms.date: 06/06/2025
----
-
-# YMM embedded rounding removed from AVX10.2
-
-Support for YMM embedded rounding has been removed from the type.
-
-## Previous behavior
-
-In previous .NET 10 Preview versions, the [affected APIs](#affected-apis) in were available.
-
-## New behavior
-
-Starting in Preview 5, the [affected APIs](#affected-apis) in are removed and no longer available.
-
-## Version introduced
-
-.NET 10 Preview 5
-
-## Type of breaking change
-
-This change can affect [binary compatibility](../../categories.md#binary-compatibility) and [source compatibility](../../categories.md#source-compatibility).
-
-## Reason for change
-
-Intel pivoted direction and now requires that AVX10.2 also implement AVX512. Since ZMM embedded rounding is always available, the YMM embedded rounding feature isn't necessary.
-
-## Recommended action
-
-Because the hardware isn't yet available, no users should be affected by this change.
-
-## Affected APIs
-
-- `System.Runtime.Intrinsics.X86.Avx10v2.ConvertToSByteWithSaturationAndZeroExtendToInt32`
-- `System.Runtime.Intrinsics.X86.Avx10v2.ConvertToByteWithSaturationAndZeroExtendToInt32`
-- `System.Runtime.Intrinsics.X86.Avx10v2.Add`
-- `System.Runtime.Intrinsics.X86.Avx10v2.Divide`
-- `System.Runtime.Intrinsics.X86.Avx10v2.Multiply`
-- `System.Runtime.Intrinsics.X86.Avx10v2.Scale`
-- `System.Runtime.Intrinsics.X86.Avx10v2.Sqrt`
-- `System.Runtime.Intrinsics.X86.Avx10v2.Subtract`
-- `System.Runtime.Intrinsics.X86.Avx10v2.ConvertToVector128Int32`
-- `System.Runtime.Intrinsics.X86.Avx10v2.ConvertToVector128Single`
-- `System.Runtime.Intrinsics.X86.Avx10v2.ConvertToVector128UInt32`
-- `System.Runtime.Intrinsics.X86.Avx10v2.ConvertToVector256Double`
-- `System.Runtime.Intrinsics.X86.Avx10v2.ConvertToVector256Int32`
-- `System.Runtime.Intrinsics.X86.Avx10v2.ConvertToVector256Int64`
-- `System.Runtime.Intrinsics.X86.Avx10v2.ConvertToVector256Single`
-- `System.Runtime.Intrinsics.X86.Avx10v2.ConvertToVector256UInt32`
-- `System.Runtime.Intrinsics.X86.Avx10v2.ConvertToVector256UInt64`
diff --git a/docs/core/compatibility/cryptography/10.0/cosesigner-key-null.md b/docs/core/compatibility/cryptography/10.0/cosesigner-key-null.md
index 5895cb696d6e7..db142694407e5 100644
--- a/docs/core/compatibility/cryptography/10.0/cosesigner-key-null.md
+++ b/docs/core/compatibility/cryptography/10.0/cosesigner-key-null.md
@@ -12,15 +12,15 @@ In .NET 10, the , don't work on macOS even if OpenSSL is available, and a exception is thrown.
+Starting in .NET 10, classes that are specific to OpenSSL, such as , don't work on macOS even if OpenSSL is available, and a exception is thrown.
throws a exception.
diff --git a/docs/core/compatibility/cryptography/10.0/openssl-version-requirement.md b/docs/core/compatibility/cryptography/10.0/openssl-version-requirement.md
index 3c9c7da74ae40..c03223bc2ec00 100644
--- a/docs/core/compatibility/cryptography/10.0/openssl-version-requirement.md
+++ b/docs/core/compatibility/cryptography/10.0/openssl-version-requirement.md
@@ -11,7 +11,7 @@ Starting in .NET 10, OpenSSL 1.1.1 or later is required on Unix platforms where
## Version introduced
-.NET 10 GA
+.NET 10
## Previous behavior
diff --git a/docs/core/compatibility/cryptography/10.0/version-override.md b/docs/core/compatibility/cryptography/10.0/version-override.md
index 7fcb4574d7630..eb81b32f6208b 100644
--- a/docs/core/compatibility/cryptography/10.0/version-override.md
+++ b/docs/core/compatibility/cryptography/10.0/version-override.md
@@ -11,15 +11,15 @@ ai-usage: ai-assisted
## Previous behavior
-The `CLR_OPENSSL_VERSION_OVERRIDE` environment variable was used to specify the preferred OpenSSL version to be loaded in the application.
+Previously, the `CLR_OPENSSL_VERSION_OVERRIDE` environment variable was used to specify the preferred OpenSSL version to be loaded in the application.
## New behavior
-The `DOTNET_OPENSSL_VERSION_OVERRIDE` environment variable is used to specify the preferred OpenSSL version to be loaded in the application.
+Starting in .NET 10, the `DOTNET_OPENSSL_VERSION_OVERRIDE` environment variable is used to specify the preferred OpenSSL version to be loaded in the application.
## Version introduced
-.NET 10 Preview 1
+.NET 10
## Type of breaking change
diff --git a/docs/core/compatibility/cryptography/10.0/x500distinguishedname-validation.md b/docs/core/compatibility/cryptography/10.0/x500distinguishedname-validation.md
index 150dd22b4fcdb..74982c3ed5883 100644
--- a/docs/core/compatibility/cryptography/10.0/x500distinguishedname-validation.md
+++ b/docs/core/compatibility/cryptography/10.0/x500distinguishedname-validation.md
@@ -18,7 +18,7 @@ Starting in .NET 10, components that violate encoding rules throw a and has changed. When these objects contain a key without algorithm parameters, they now return `null` instead of an empty array.
+The behavior of and has changed. When these objects contain a key without algorithm parameters, they now return `null` instead of an empty array.
## Version introduced
-.NET 10 Preview 3
+.NET 10
## Previous behavior
- or objects that contained a key without algorithm parameters would return an empty array when accessing the key algorithm parameters.
+Previously, or objects that contained a key without algorithm parameters returned an empty array when accessing the key algorithm parameters.
```csharp
byte[] parameters = certificate.GetKeyAlgorithmParameters();
@@ -25,7 +25,7 @@ byte[] parameters = certificate.GetKeyAlgorithmParameters();
## New behavior
- or objects that contain a key without algorithm parameters will return `null` when accessing the key algorithm parameters.
+Starting in .NET 10, or objects that contain a key without algorithm parameters return `null` when accessing the key algorithm parameters.
```csharp
byte[] parameters = certificate.GetKeyAlgorithmParameters();
diff --git a/docs/core/compatibility/extensions/10.0/backgroundservice-executeasync-task.md b/docs/core/compatibility/extensions/10.0/backgroundservice-executeasync-task.md
index a41155ff77ced..f9a4725f6b7e4 100644
--- a/docs/core/compatibility/extensions/10.0/backgroundservice-executeasync-task.md
+++ b/docs/core/compatibility/extensions/10.0/backgroundservice-executeasync-task.md
@@ -3,7 +3,6 @@ title: "Breaking change: BackgroundService runs all of ExecuteAsync as a Task"
description: "Learn about the breaking change in .NET 10 where BackgroundService now runs the entirety of ExecuteAsync on a background thread instead of running the synchronous portion on the main thread."
ms.date: 10/13/2025
ai-usage: ai-assisted
-ms.custom: https://github.com/dotnet/runtime/issues/116181
---
# BackgroundService runs all of ExecuteAsync as a Task
diff --git a/docs/core/compatibility/extensions/10.0/configuration-null-values-preserved.md b/docs/core/compatibility/extensions/10.0/configuration-null-values-preserved.md
index aea7ee007a2e4..f3db0f28140c1 100644
--- a/docs/core/compatibility/extensions/10.0/configuration-null-values-preserved.md
+++ b/docs/core/compatibility/extensions/10.0/configuration-null-values-preserved.md
@@ -18,7 +18,7 @@ The update also includes improvements to support binding `null` values within ar
## Version introduced
-.NET 10 Preview 7
+.NET 10
## Previous behavior
diff --git a/docs/core/compatibility/extensions/10.0/console-json-logging-duplicate-messages.md b/docs/core/compatibility/extensions/10.0/console-json-logging-duplicate-messages.md
index ae33060e537b6..dc3c1e0b8a657 100644
--- a/docs/core/compatibility/extensions/10.0/console-json-logging-duplicate-messages.md
+++ b/docs/core/compatibility/extensions/10.0/console-json-logging-duplicate-messages.md
@@ -12,7 +12,7 @@ When logging to the console using the JSON formatter, log messages are no longer
## Version introduced
-.NET 10 Preview 7
+.NET 10
## Previous behavior
@@ -51,7 +51,7 @@ Starting in .NET 10, `Message` appears only at the top level and not inside the
## Type of breaking change
-This is a [behavioral change](../../categories.md#behavioral-change).
+This change is a [behavioral change](../../categories.md#behavioral-change).
## Reason for change
diff --git a/docs/core/compatibility/extensions/10.0/dynamically-accessed-members-configuration.md b/docs/core/compatibility/extensions/10.0/dynamically-accessed-members-configuration.md
index 397929aa9a1ed..96eca13b9253b 100644
--- a/docs/core/compatibility/extensions/10.0/dynamically-accessed-members-configuration.md
+++ b/docs/core/compatibility/extensions/10.0/dynamically-accessed-members-configuration.md
@@ -12,7 +12,7 @@ ms.custom: https://github.com/dotnet/docs/issues/47433
## Version introduced
-.NET 10 Preview 6
+.NET 10
## Previous behavior
diff --git a/docs/core/compatibility/extensions/10.0/provideraliasattribute-moved-assembly.md b/docs/core/compatibility/extensions/10.0/provideraliasattribute-moved-assembly.md
index c33f4f2876698..d64b8fcecbbcd 100644
--- a/docs/core/compatibility/extensions/10.0/provideraliasattribute-moved-assembly.md
+++ b/docs/core/compatibility/extensions/10.0/provideraliasattribute-moved-assembly.md
@@ -11,7 +11,7 @@ The attribute has bee
## Version introduced
-.NET 10 Preview 4
+.NET 10
## Previous behavior
diff --git a/docs/core/compatibility/globalization/10.0/version-override.md b/docs/core/compatibility/globalization/10.0/version-override.md
index fc1cc13e80a3b..d7a73dcf67d77 100644
--- a/docs/core/compatibility/globalization/10.0/version-override.md
+++ b/docs/core/compatibility/globalization/10.0/version-override.md
@@ -11,15 +11,15 @@ ai-usage: ai-assisted
## Previous behavior
-The `CLR_ICU_VERSION_OVERRIDE` environment variable was used to specify the preferred ICU version to be loaded in the application.
+Previously, the `CLR_ICU_VERSION_OVERRIDE` environment variable was used to specify the preferred ICU version to be loaded in the application.
## New behavior
-The `DOTNET_ICU_VERSION_OVERRIDE` environment variable is used to specify the preferred ICU version to be loaded in the application.
+Starting in .NET 10, the `DOTNET_ICU_VERSION_OVERRIDE` environment variable is used to specify the preferred ICU version to be loaded in the application.
## Version introduced
-.NET 10 Preview 1
+.NET 10
## Type of breaking change
diff --git a/docs/core/compatibility/interop/10.0/native-library-search.md b/docs/core/compatibility/interop/10.0/native-library-search.md
index 012ce97ee8864..08411cbb05d16 100644
--- a/docs/core/compatibility/interop/10.0/native-library-search.md
+++ b/docs/core/compatibility/interop/10.0/native-library-search.md
@@ -13,7 +13,7 @@ The application directory is no longer added to `NATIVE_DLL_SEARCH_DIRECTORIES`
## Version introduced
-.NET 10 Preview 6
+.NET 10
## Previous behavior
diff --git a/docs/core/compatibility/interop/10.0/search-assembly-directory.md b/docs/core/compatibility/interop/10.0/search-assembly-directory.md
index ab6a92192c018..929135332713a 100644
--- a/docs/core/compatibility/interop/10.0/search-assembly-directory.md
+++ b/docs/core/compatibility/interop/10.0/search-assembly-directory.md
@@ -12,11 +12,11 @@ Starting in .NET 10, if you specify was specified as the only search flag, the runtime searched the assembly directory first. If the library was not found, it fell back to the operating system's default library search behavior.
+Previously, when was specified as the only search flag, the runtime searched the assembly directory first. If the library was not found, it fell back to the operating system's default library search behavior.
For example, with the following code, the runtime would search the assembly directory and then fall back to the OS search paths.
@@ -27,7 +27,7 @@ public static extern void ExampleMethod();
## New behavior
-When is specified as the only search flag, the runtime searches only in the assembly directory. It *doesn't* fall back to the operating system's default library search behavior.
+Starting in .NET 10, when is specified as the only search flag, the runtime searches only in the assembly directory. It *doesn't* fall back to the operating system's default library search behavior.
The previous code example now only searches the assembly directory for *example.dll*. If the library is not found there, a is thrown.
diff --git a/docs/core/compatibility/networking/10.0/default-http-streaming.md b/docs/core/compatibility/networking/10.0/default-http-streaming.md
index 4661eee91bc8c..0cd2230dc9f21 100644
--- a/docs/core/compatibility/networking/10.0/default-http-streaming.md
+++ b/docs/core/compatibility/networking/10.0/default-http-streaming.md
@@ -12,11 +12,11 @@ Browser HTTP clients now enable streaming HTTP responses by default. Consequentl
## Version introduced
-.NET 10 Preview 3
+.NET 10
## Previous behavior
-In browser environments such as WebAssembly (WASM) and Blazor, the HTTP client buffered the entire response by default. The object contained a unless you explicitly opted in to streaming responses using the `WebAssemblyEnableStreamingResponse` option.
+Previously, in browser environments such as WebAssembly (WASM) and Blazor, the HTTP client buffered the entire response by default. The object contained a unless you explicitly opted in to streaming responses using the `WebAssemblyEnableStreamingResponse` option.
```csharp
var response = await httpClient.GetAsync("https://example.com");
@@ -25,7 +25,7 @@ var contentStream = await response.Content.ReadAsStreamAsync(); // Returns Memor
## New behavior
-Streaming HTTP responses are now enabled by default. The no longer contains a . Instead, returns a `BrowserHttpReadStream`, which does not support synchronous operations.
+Starting in .NET 10, streaming HTTP responses are enabled by default. The no longer contains a . Instead, returns a `BrowserHttpReadStream`, which does not support synchronous operations.
```csharp
var response = await httpClient.GetAsync("https://example.com");
diff --git a/docs/core/compatibility/networking/10.0/http3-disabled-with-publishtrimmed.md b/docs/core/compatibility/networking/10.0/http3-disabled-with-publishtrimmed.md
index 5656f067a7bf0..a5bdaef00f49d 100644
--- a/docs/core/compatibility/networking/10.0/http3-disabled-with-publishtrimmed.md
+++ b/docs/core/compatibility/networking/10.0/http3-disabled-with-publishtrimmed.md
@@ -12,7 +12,7 @@ Setting `PublishTrimmed` or `PublishAot` to `true` in the project disables HTTP/
## Version introduced
-.NET 10 Preview 6
+.NET 10
## Previous behavior
diff --git a/docs/core/compatibility/networking/10.0/uri-length-limits-removed.md b/docs/core/compatibility/networking/10.0/uri-length-limits-removed.md
index 99bf1830872d5..cf329d6d131a0 100644
--- a/docs/core/compatibility/networking/10.0/uri-length-limits-removed.md
+++ b/docs/core/compatibility/networking/10.0/uri-length-limits-removed.md
@@ -11,7 +11,7 @@ Methods that create instances (constructors and [!NOTE]
-> In a later .NET 10 preview, a related change was made such that [direct prunable package references](prune-packagereference-privateassets.md) are automatically excluded from the `.nuspec` file. However, you'll still get the `NU1510` warning to clean up your project.
+> Later in .NET 10, a related change was made such that [direct prunable package references](prune-packagereference-privateassets.md) are automatically excluded from the `.nuspec` file. However, you'll still get the `NU1510` warning to clean up your project.
## Type of breaking change
diff --git a/docs/core/compatibility/sdk/10.0/nuget-enhanced-http-retry-removed.md b/docs/core/compatibility/sdk/10.0/nuget-enhanced-http-retry-removed.md
index 452f90a00b9c2..9981f2daa9502 100644
--- a/docs/core/compatibility/sdk/10.0/nuget-enhanced-http-retry-removed.md
+++ b/docs/core/compatibility/sdk/10.0/nuget-enhanced-http-retry-removed.md
@@ -11,11 +11,11 @@ The `NUGET_ENABLE_ENHANCED_HTTP_RETRY` environment variable no longer has any ef
## Version introduced
-.NET 10 Preview 6
+.NET 10
## Previous behavior
-When the `NUGET_ENABLE_ENHANCED_HTTP_RETRY` environment variable was set to `false`, NuGet used the old retry behavior with a fixed 200ms delay between failed HTTP calls instead of exponential back-off.
+Previously, when the `NUGET_ENABLE_ENHANCED_HTTP_RETRY` environment variable was set to `false`, NuGet used the old retry behavior with a fixed 200ms delay between failed HTTP calls instead of exponential back-off.
## New behavior
@@ -23,7 +23,7 @@ The `NUGET_ENABLE_ENHANCED_HTTP_RETRY` environment variable has no effect. NuGet
## Type of breaking change
-This is a [behavioral change](../../categories.md#behavioral-change).
+This change is a [behavioral change](../../categories.md#behavioral-change).
## Reason for change
diff --git a/docs/core/compatibility/sdk/10.0/nuget-packageid-validation.md b/docs/core/compatibility/sdk/10.0/nuget-packageid-validation.md
index bfa40997be2b0..080d19ed276ed 100644
--- a/docs/core/compatibility/sdk/10.0/nuget-packageid-validation.md
+++ b/docs/core/compatibility/sdk/10.0/nuget-packageid-validation.md
@@ -11,7 +11,7 @@ NuGet now validates package IDs when they're used to create URLs in .NET 10. If
## Version introduced
-.NET 10 RC 1
+.NET 10
## Previous behavior
diff --git a/docs/core/compatibility/sdk/10.0/nugetaudit-transitive-packages.md b/docs/core/compatibility/sdk/10.0/nugetaudit-transitive-packages.md
index 80113ca459aff..94e4d3da08eb7 100644
--- a/docs/core/compatibility/sdk/10.0/nugetaudit-transitive-packages.md
+++ b/docs/core/compatibility/sdk/10.0/nugetaudit-transitive-packages.md
@@ -12,7 +12,7 @@ The [`dotnet restore` command](../../../tools/dotnet-restore.md), which restores
[NuGetAudit](../8.0/dotnet-restore-audit.md) was introduced in .NET 8 to emit warnings for packages with known security vulnerabilities.
By default, only direct package references were audited, however, it was possible to change the `NuGetAuditMode` property to include all packages.
-In .NET 9 preview 6, NuGetAuditMode's default was changed to `all` for all projects, and this change was reverted back to `direct` in the .NET 9.0.101 SDK.
+In a .NET 9 preview version, NuGetAuditMode's default was changed to `all` for all projects, and this change was reverted back to `direct` in the .NET 9.0.101 SDK.
## New behavior
diff --git a/docs/core/compatibility/sdk/10.0/prune-packagereference-privateassets.md b/docs/core/compatibility/sdk/10.0/prune-packagereference-privateassets.md
index 2fbeaf2aafd2f..18fd7ff12a41e 100644
--- a/docs/core/compatibility/sdk/10.0/prune-packagereference-privateassets.md
+++ b/docs/core/compatibility/sdk/10.0/prune-packagereference-privateassets.md
@@ -11,11 +11,11 @@ The [PrunePackageReference](/nuget/consume-packages/package-references-in-projec
## Version introduced
-.NET 10 Preview 7
+.NET 10
## Previous behavior
-Starting in .NET 10 Preview 1, if pruning was enabled, directly prunable `PackageReference` items might have generated an [`NU1510` warning](/nuget/reference/errors-and-warnings/nu1510) but still appeared in the generated *.nuspec* dependencies list, even if the package was provided by the platform.
+Previously, if pruning was enabled, directly prunable `PackageReference` items still appeared in the generated *.nuspec* dependencies list, even if the package was provided by the platform. (And if your project targeted .NET 10, they might have generated a [`NU1510` warning](/nuget/reference/errors-and-warnings/nu1510).)
For example, consider a multi-targeting project with the following configuration:
@@ -44,7 +44,7 @@ Such a project file generated a *.nuspec* file with dependencies for both target
## New behavior
-Starting in .NET 10 Preview 7, when pruning is enabled, directly prunable `PackageReference` items are automatically marked with `PrivateAssets=all` and `IncludeAssets=none`, which excludes them from the generated dependencies for target frameworks where they're provided by the platform. (However, if your project targets .NET 10 or later, you'll still get the `NU1510` warning until you remove the reference from your project.)
+Starting in .NET 10, when pruning is enabled, directly prunable `PackageReference` items are automatically marked with `PrivateAssets=all` and `IncludeAssets=none`, which excludes them from the generated dependencies for target frameworks where they're provided by the platform. (However, if your project targets .NET 10 or later, you'll still get a [`NU1510` warning](/nuget/reference/errors-and-warnings/nu1510) until you remove the reference from your project.)
The same project configuration now generates a *.nuspec* file with the prunable dependency removed from the target framework that provides it (.NET 10):
@@ -60,7 +60,7 @@ The same project configuration now generates a *.nuspec* file with the prunable
## Type of breaking change
-This is a [behavioral change](../../categories.md#behavioral-change).
+This change is a [behavioral change](../../categories.md#behavioral-change).
## Reason for change
diff --git a/docs/core/compatibility/sdk/10.0/version-requirements.md b/docs/core/compatibility/sdk/10.0/version-requirements.md
deleted file mode 100644
index 194d534e224db..0000000000000
--- a/docs/core/compatibility/sdk/10.0/version-requirements.md
+++ /dev/null
@@ -1,45 +0,0 @@
----
-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: 10/08/2025
-ai-usage: ai-generated
----
-# 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 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
-
-- .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 is a [behavioral change](../../categories.md#behavioral-change).
-
-## Reason for change
-
-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 version 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/serialization/10/xmlserializer-obsolete-properties.md b/docs/core/compatibility/serialization/10/xmlserializer-obsolete-properties.md
index 927093eefec28..529df364c67a0 100644
--- a/docs/core/compatibility/serialization/10/xmlserializer-obsolete-properties.md
+++ b/docs/core/compatibility/serialization/10/xmlserializer-obsolete-properties.md
@@ -13,7 +13,7 @@ With this change, properties marked with `[Obsolete]` are now serialized by defa
## Version introduced
-.NET 10 Preview 1
+.NET 10
## Previous behavior
@@ -23,10 +23,10 @@ In previous versions of .NET, properties marked with the `[Obsolete]` attribute
public class Example
{
public string NormalProperty { get; set; } = "normal";
-
+
[Obsolete("This property is deprecated")]
public string ObsoleteProperty { get; set; } = "obsolete";
-
+
[XmlIgnore]
public string IgnoredProperty { get; set; } = "ignored";
}
diff --git a/docs/core/compatibility/toc.yml b/docs/core/compatibility/toc.yml
index 4394916aa0483..78a5d4adf5f58 100644
--- a/docs/core/compatibility/toc.yml
+++ b/docs/core/compatibility/toc.yml
@@ -66,8 +66,6 @@ items:
href: core-libraries/10.0/sigterm-signal-handler.md
- name: System.Linq.AsyncEnumerable included in core libraries
href: core-libraries/10.0/asyncenumerable.md
- - name: YMM embedded rounding removed from AVX10.2
- href: core-libraries/10.0/ymm-embedded-rounding.md
- name: Cryptography
items:
- name: CompositeMLDsa updated to draft-08
@@ -172,8 +170,6 @@ items:
href: sdk/10.0/nu1015-packagereference-version.md
- name: PrunePackageReference privatizes direct prunable references
href: sdk/10.0/prune-packagereference-privateassets.md
- - name: Version requirements for .NET 10 SDK
- href: sdk/10.0/version-requirements.md
- name: Serialization
items:
- name: XmlSerializer no longer ignores properties marked with ObsoleteAttribute
diff --git a/docs/core/compatibility/windows-forms/10.0/insertadjacentelement-orientation.md b/docs/core/compatibility/windows-forms/10.0/insertadjacentelement-orientation.md
index afb741bde02eb..2739d9cf2e006 100644
--- a/docs/core/compatibility/windows-forms/10.0/insertadjacentelement-orientation.md
+++ b/docs/core/compatibility/windows-forms/10.0/insertadjacentelement-orientation.md
@@ -1,6 +1,6 @@
---
title: "Breaking change: Renamed parameter in HtmlElement.InsertAdjacentElement"
-description: Learn about the .NET 10 Preview 1 breaking change in Windows Forms where the parameter `orient` was renamed to `orientation`.
+description: Learn about the breaking change in Windows Forms where the parameter `orient` was renamed to `orientation`.
ms.date: 01/30/2025
ai-usage: ai-assisted
---
@@ -11,7 +11,7 @@ ai-usage: ai-assisted
## Previous behavior
-Calls to included the `orient` parameter:
+Previously, calls to included the `orient` parameter:
```csharp
element.InsertAdjacentElement(orient: HtmlElementInsertionOrientation.AfterEnd, newElement);
@@ -27,7 +27,7 @@ element.InsertAdjacentElement(orientation: HtmlElementInsertionOrientation.After
## Version introduced
-.NET 10 Preview 1
+.NET 10
## Type of breaking change
diff --git a/docs/core/compatibility/windows-forms/10.0/menuitem-contextmenu.md b/docs/core/compatibility/windows-forms/10.0/menuitem-contextmenu.md
index f281914be35ef..7a48dc2858196 100644
--- a/docs/core/compatibility/windows-forms/10.0/menuitem-contextmenu.md
+++ b/docs/core/compatibility/windows-forms/10.0/menuitem-contextmenu.md
@@ -8,11 +8,11 @@ ms.custom: https://github.com/dotnet/docs/issues/44738
# Applications referencing both WPF and WinForms must disambiguate MenuItem and ContextMenu types
-This document describes a breaking change introduced in .NET 10 Preview 1. Applications that reference both Windows Presentation Foundation (WPF) and Windows Forms (WinForms) must disambiguate certain types, such as `MenuItem` and `ContextMenu`, to avoid compile-time errors.
+Applications that reference both Windows Presentation Foundation (WPF) and Windows Forms (WinForms) must now disambiguate certain types, such as `MenuItem` and `ContextMenu`, to avoid compile-time errors.
## Version introduced
-.NET 10 Preview 1
+.NET 10
## Previous behavior
diff --git a/docs/core/compatibility/windows-forms/10.0/obsolete-apis.md b/docs/core/compatibility/windows-forms/10.0/obsolete-apis.md
index 6cd2b0bf296b8..fa8594d4ae7cf 100644
--- a/docs/core/compatibility/windows-forms/10.0/obsolete-apis.md
+++ b/docs/core/compatibility/windows-forms/10.0/obsolete-apis.md
@@ -10,7 +10,7 @@ Some Windows Forms APIs have been marked as obsolete, starting in .NET 10.
## Previous behavior
-In previous .NET versions, these APIs can be used without any build warning.
+Previously, the [affected APIs](#affected-apis) could be used without any build warnings.
## New behavior
@@ -18,11 +18,11 @@ In .NET 10 and later versions, use of these APIs produces a compile-time warning
The following table lists the custom diagnostic IDs and their corresponding warning messages.
-| Diagnostic ID | Description | Severity | Version introduced |
-| - | - |
-| [WFDEV004](/dotnet/desktop/winforms/wfdev-diagnostics/wfdev004) | , and the corresponding events are obsolete. Use , , and instead. | Warning | Preview 1 |
-| [WFDEV005](/dotnet/desktop/winforms/wfdev-diagnostics/wfdev005) | method is obsolete. Use methods instead. | Warning | Preview 1 |
-| [WFDEV006](/dotnet/desktop/winforms/wfdev-diagnostics/wfdev006) | , , , , , are obsolete. They're provided for binary compatibility with .NET Framework. | Warning | Preview 1 |
+| Diagnostic ID | Description | Severity |
+|---------------|-------------|----------|
+| [WFDEV004](/dotnet/desktop/winforms/wfdev-diagnostics/wfdev004) | , and the corresponding events are obsolete. Use , , and instead. | Warning |
+| [WFDEV005](/dotnet/desktop/winforms/wfdev-diagnostics/wfdev005) | method is obsolete. Use methods instead. | Warning |
+| [WFDEV006](/dotnet/desktop/winforms/wfdev-diagnostics/wfdev006) | , , , , , are obsolete. They're provided for binary compatibility with .NET Framework. | Warning |
## Version introduced
diff --git a/docs/core/compatibility/windows-forms/10.0/statusstrip-renderer.md b/docs/core/compatibility/windows-forms/10.0/statusstrip-renderer.md
index 062264432873a..de190e5fd8796 100644
--- a/docs/core/compatibility/windows-forms/10.0/statusstrip-renderer.md
+++ b/docs/core/compatibility/windows-forms/10.0/statusstrip-renderer.md
@@ -9,7 +9,7 @@ ms.date: 02/12/2025
## Version introduced
-.NET 10 Preview 1
+.NET 10
## Previous behavior
diff --git a/docs/core/compatibility/windows-forms/10.0/system-drawing-outofmemory-externalexception.md b/docs/core/compatibility/windows-forms/10.0/system-drawing-outofmemory-externalexception.md
index 8c1049f6bee74..a2ecb35f3b09c 100644
--- a/docs/core/compatibility/windows-forms/10.0/system-drawing-outofmemory-externalexception.md
+++ b/docs/core/compatibility/windows-forms/10.0/system-drawing-outofmemory-externalexception.md
@@ -14,11 +14,11 @@ GDI+ error handling in System.Drawing has been updated to throw .
+Previously, when GDI+ encountered `Status.OutOfMemory` errors (often due to invalid input rather than actual memory issues), System.Drawing APIs threw .
## New behavior
diff --git a/docs/core/compatibility/windows-forms/10.0/treeview-text-location.md b/docs/core/compatibility/windows-forms/10.0/treeview-text-location.md
index 01307f712a5b8..e0229b05da8ff 100644
--- a/docs/core/compatibility/windows-forms/10.0/treeview-text-location.md
+++ b/docs/core/compatibility/windows-forms/10.0/treeview-text-location.md
@@ -23,7 +23,7 @@ By setting the switch `"System.Windows.Forms.TreeView.MoveTreeViewTextLocationOn
## Version introduced
-.NET 10 Preview 1
+.NET 10
## Type of breaking change
diff --git a/docs/core/compatibility/wpf/10.0/dynamicresource-crash.md b/docs/core/compatibility/wpf/10.0/dynamicresource-crash.md
index fa7f53e45077e..5daaefbbca21c 100644
--- a/docs/core/compatibility/wpf/10.0/dynamicresource-crash.md
+++ b/docs/core/compatibility/wpf/10.0/dynamicresource-crash.md
@@ -8,15 +8,15 @@ ms.custom: https://github.com/dotnet/docs/issues/46089
# Incorrect usage of DynamicResource causes application crash
-Beginning with .NET 10 Preview 4, applications using `DynamicResource` incorrectly now crash at runtime.
+Applications that use `DynamicResource` incorrectly now crash at run time.
## Version introduced
-.NET 10 Preview 4
+.NET 10
## Previous behavior
-Applications that incorrectly initialized `DynamicResource` would continue running without crashing. The values would fall back to defaults, and an `InvalidOperationException` would appear in the output.
+Previously, applications that incorrectly initialized `DynamicResource` would continue running without crashing. The values would fall back to defaults, and an `InvalidOperationException` would appear in the output.
## New behavior
diff --git a/docs/core/compatibility/wpf/10.0/empty-grid-definitions.md b/docs/core/compatibility/wpf/10.0/empty-grid-definitions.md
index 22fcd1e2983af..688a7e77961de 100644
--- a/docs/core/compatibility/wpf/10.0/empty-grid-definitions.md
+++ b/docs/core/compatibility/wpf/10.0/empty-grid-definitions.md
@@ -12,7 +12,7 @@ Starting with .NET 10, WPF applications fail to build if `Ctrl+C to stop it. Consider the following example output:
@@ -143,8 +142,6 @@ The `dotnet publish` command compiles your app to the _publish_ folder. The path
From the _App_ folder, get a directory listing of the publish folder to verify that the _DotNet.Docker.dll_ file was created.
-:::zone pivot="dotnet-9-0"
-
```powershell
dir .\bin\Release\net9.0\publish\
@@ -159,46 +156,15 @@ Mode LastWriteTime Length Name
-a---- 1/6/2025 10:11 AM 340 DotNet.Docker.runtimeconfig.json
```
-:::zone-end
-:::zone pivot="dotnet-8-0"
-
-```powershell
-dir .\bin\Release\net8.0\publish\
-
- Directory: C:\Users\default\docker-working\App\bin\Release\net8.0\publish
-
-Mode LastWriteTime Length Name
----- ------------- ------ ----
--a--- 9/22/2023 9:17 AM 431 DotNet.Docker.deps.json
--a--- 9/22/2023 9:17 AM 6144 DotNet.Docker.dll
--a--- 9/22/2023 9:17 AM 157696 DotNet.Docker.exe
--a--- 9/22/2023 9:17 AM 11688 DotNet.Docker.pdb
--a--- 9/22/2023 9:17 AM 353 DotNet.Docker.runtimeconfig.json
-```
-
-:::zone-end
-
#### [Linux](#tab/linux)
Use the `ls` command to get a directory listing and verify that the _DotNet.Docker.dll_ file was created.
-:::zone pivot="dotnet-9-0"
-
```bash
me@DESKTOP:/docker-working/app$ ls bin/Release/net9.0/publish
DotNet.Docker.deps.json DotNet.Docker.dll DotNet.Docker.exe DotNet.Docker.pdb DotNet.Docker.runtimeconfig.json
```
-:::zone-end
-:::zone pivot="dotnet-8-0"
-
-```bash
-me@DESKTOP:/docker-working/app$ ls bin/Release/net8.0/publish
-DotNet.Docker.deps.json DotNet.Docker.dll DotNet.Docker.exe DotNet.Docker.pdb DotNet.Docker.runtimeconfig.json
-```
-
-:::zone-end
-
---
## Create the Dockerfile
@@ -207,31 +173,17 @@ The _Dockerfile_ file is used by the `docker build` command to create a containe
Create a file named _Dockerfile_ in the directory containing the _.csproj_ and open it in a text editor. This tutorial uses the ASP.NET Core runtime image (which contains the .NET runtime image) and corresponds with the .NET console application.
-:::zone pivot="dotnet-9-0"
-
-:::code language="docker" source="snippets/9.0/App/Dockerfile":::
+:::code language="docker" source="snippets/App/Dockerfile":::
> [!NOTE]
> The ASP.NET Core runtime image is used intentionally here, although the `mcr.microsoft.com/dotnet/runtime:9.0` image could be used instead.
-:::zone-end
-:::zone pivot="dotnet-8-0"
-
-:::code language="docker" source="snippets/8.0/App/Dockerfile":::
-
-> [!NOTE]
-> The ASP.NET Core runtime image is used intentionally here, although the `mcr.microsoft.com/dotnet/runtime:8.0` image could be used instead.
-
-:::zone-end
-
> [!IMPORTANT]
> Including a secure hash algorithm (SHA) after the image tag in a _Dockerfile_ is a best practice. This ensures that the image is not tampered with and that the image is the same as the one you expect. The SHA is a unique identifier for the image. For more information, see [Docker Docs: Pull an image by digest](https://docs.docker.com/reference/cli/docker/image/pull/#pull-an-image-by-digest-immutable-identifier).
> [!TIP]
> This _Dockerfile_ uses multi-stage builds, which optimize the final size of the image by layering the build and leaving only required artifacts. For more information, see [Docker Docs: multi-stage builds](https://docs.docker.com/build/building/multi-stage/).
-:::zone pivot="dotnet-9-0"
-
The `FROM` keyword requires a fully qualified Docker container image name. The Microsoft Container Registry (MCR, mcr.microsoft.com) is a syndicate of Docker Hub, which hosts publicly accessible containers. The `dotnet` segment is the container repository, whereas the `sdk` or `aspnet` segment is the container image name. The image is tagged with `9.0`, which is used for versioning. Thus, `mcr.microsoft.com/dotnet/aspnet:9.0` is the .NET 9.0 runtime. Make sure that you pull the runtime version that matches the runtime targeted by your SDK. For example, the app created in the previous section used the .NET 9.0 SDK, and the base image referred to in the _Dockerfile_ is tagged with **9.0**.
> [!IMPORTANT]
@@ -263,37 +215,6 @@ Save the _Dockerfile_ file. The directory structure of the working folder should
└──...
```
-:::zone-end
-:::zone pivot="dotnet-8-0"
-
-The `FROM` keyword requires a fully qualified Docker container image name. The Microsoft Container Registry (MCR, mcr.microsoft.com) is a syndicate of Docker Hub, which hosts publicly accessible containers. The `dotnet` segment is the container repository, whereas the `sdk` or `aspnet` segment is the container image name. The image is tagged with `8.0`, which is used for versioning. Thus, `mcr.microsoft.com/dotnet/aspnet:8.0` is the .NET 8.0 runtime. Make sure that you pull the runtime version that matches the runtime targeted by your SDK. For example, the app created in the previous section used the .NET 8.0 SDK, and the base image referred to in the _Dockerfile_ is tagged with **8.0**.
-
-> [!IMPORTANT]
-> When using Windows-based container images, you need to specify the image tag beyond simply `8.0`, for example, `mcr.microsoft.com/dotnet/aspnet:8.0-nanoserver-1809` instead of `mcr.microsoft.com/dotnet/aspnet:8.0`. Select an image name based on whether you're using Nano Server or Windows Server Core and which version of that OS. You can find a full list of all supported tags on .NET's [Docker Hub page](https://hub.docker.com/_/microsoft-dotnet).
-
-Save the _Dockerfile_ file. The directory structure of the working folder should look like the following. Some of the deeper-level files and folders are omitted to save space in the article:
-
-```Directory
-📁 docker-working
- └──📂 App
- ├── Dockerfile
- ├── DotNet.Docker.csproj
- ├── Program.cs
- ├──📂 bin
- │ └──📂 Release
- │ └──📂 net8.0
- │ └──📂 publish
- │ ├── DotNet.Docker.deps.json
- │ ├── DotNet.Docker.exe
- │ ├── DotNet.Docker.dll
- │ ├── DotNet.Docker.pdb
- │ └── DotNet.Docker.runtimeconfig.json
- └──📁 obj
- └──...
-```
-
-:::zone-end
-
The `ENTRYPOINT` instruction sets `dotnet` as the host for the `DotNet.Docker.dll`. However, it's possible to instead define the `ENTRYPOINT` as the app executable itself, relying on the OS as the app host:
```dockerfile
@@ -310,28 +231,13 @@ docker build -t counter-image -f Dockerfile .
Docker processes each line in the _Dockerfile_. The `.` in the `docker build` command sets the build context of the image. The `-f` switch is the path to the _Dockerfile_. This command builds the image and creates a local repository named **counter-image** that points to that image. After this command finishes, run `docker images` to see a list of images installed:
-:::zone pivot="dotnet-9-0"
-
```console
REPOSITORY TAG IMAGE ID CREATED SIZE
counter-image latest 1c1f1433e51d 32 seconds ago 223MB
```
-:::zone-end
-:::zone pivot="dotnet-8-0"
-
-```console
-docker images
-REPOSITORY TAG IMAGE ID CREATED SIZE
-counter-image latest 2f15637dc1f6 10 minutes ago 217MB
-```
-
-:::zone-end
-
The `counter-image` repository is the name of the image. Additionally, the image tag, image identifier, size and when it was created are all part of the output. The final steps of the _Dockerfile_ are to create a container from the image and run the app, copy the published app to the container, and define the entry point:
-:::zone pivot="dotnet-9-0"
-
```dockerfile
FROM mcr.microsoft.com/dotnet/aspnet:9.0
WORKDIR /App
@@ -339,18 +245,6 @@ COPY --from=build /App/out .
ENTRYPOINT ["dotnet", "DotNet.Docker.dll"]
```
-:::zone-end
-:::zone pivot="dotnet-8-0"
-
-```dockerfile
-FROM mcr.microsoft.com/dotnet/aspnet:8.0
-WORKDIR /App
-COPY --from=build /App/out .
-ENTRYPOINT ["dotnet", "DotNet.Docker.dll"]
-```
-
-:::zone-end
-
The `FROM` command specifies the base image and tag to use. The `WORKDIR` command changes the **current directory** inside of the container to _App_.
The `COPY` command tells Docker to copy the specified source directory to a destination folder. In this example, the _publish_ contents in the `build` layer are output into the folder named _App/out_, so it's the source to copy from. All of the published contents in the _App/out_ directory are copied into current working directory (_App_).
@@ -580,6 +474,15 @@ During this tutorial, you created containers and images. If you want, delete the
Next, delete any images that you no longer want on your machine. Delete the image created by your _Dockerfile_ and then delete the .NET image the _Dockerfile_ was based on. You can use the **IMAGE ID** or the **REPOSITORY:TAG** formatted string.
+:::zone pivot="dotnet-10-0"
+
+```console
+docker rmi counter-image:latest
+docker rmi mcr.microsoft.com/dotnet/aspnet:10.0
+```
+
+:::zone-end
+
:::zone pivot="dotnet-9-0"
```console
@@ -588,6 +491,7 @@ docker rmi mcr.microsoft.com/dotnet/aspnet:9.0
```
:::zone-end
+
:::zone pivot="dotnet-8-0"
```console
diff --git a/docs/core/docker/snippets/8.0/App/Dockerfile b/docs/core/docker/snippets/8.0/App/Dockerfile
deleted file mode 100644
index c1678c5d0801a..0000000000000
--- a/docs/core/docker/snippets/8.0/App/Dockerfile
+++ /dev/null
@@ -1,15 +0,0 @@
-FROM mcr.microsoft.com/dotnet/sdk:8.0@sha256:35792ea4ad1db051981f62b313f1be3b46b1f45cadbaa3c288cd0d3056eefb83 AS build
-WORKDIR /App
-
-# Copy everything
-COPY . ./
-# Restore as distinct layers
-RUN dotnet restore
-# Build and publish a release
-RUN dotnet publish -o out
-
-# Build runtime image
-FROM mcr.microsoft.com/dotnet/aspnet:8.0@sha256:6c4df091e4e531bb93bdbfe7e7f0998e7ced344f54426b7e874116a3dc3233ff
-WORKDIR /App
-COPY --from=build /App/out .
-ENTRYPOINT ["dotnet", "DotNet.Docker.dll"]
diff --git a/docs/core/docker/snippets/8.0/App/DotNet.Docker.csproj b/docs/core/docker/snippets/8.0/App/DotNet.Docker.csproj
deleted file mode 100644
index 91b464afeacc1..0000000000000
--- a/docs/core/docker/snippets/8.0/App/DotNet.Docker.csproj
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
- Exe
- net8.0
- enable
- enable
-
-
-
diff --git a/docs/core/docker/snippets/9.0/App/Program.cs b/docs/core/docker/snippets/9.0/App/Program.cs
deleted file mode 100644
index 82e9ce0b61b99..0000000000000
--- a/docs/core/docker/snippets/9.0/App/Program.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-var counter = 0;
-var max = args.Length is not 0 ? Convert.ToInt32(args[0]) : -1;
-
-while (max is -1 || counter < max)
-{
- Console.WriteLine($"Counter: {++counter}");
-
- await Task.Delay(TimeSpan.FromMilliseconds(1_000));
-}
diff --git a/docs/core/docker/snippets/9.0/App/Dockerfile b/docs/core/docker/snippets/App/Dockerfile
similarity index 100%
rename from docs/core/docker/snippets/9.0/App/Dockerfile
rename to docs/core/docker/snippets/App/Dockerfile
diff --git a/docs/core/docker/snippets/9.0/App/DotNet.Docker.csproj b/docs/core/docker/snippets/App/DotNet.Docker.csproj
similarity index 100%
rename from docs/core/docker/snippets/9.0/App/DotNet.Docker.csproj
rename to docs/core/docker/snippets/App/DotNet.Docker.csproj
diff --git a/docs/core/docker/snippets/8.0/App/Program.cs b/docs/core/docker/snippets/App/Program.cs
similarity index 100%
rename from docs/core/docker/snippets/8.0/App/Program.cs
rename to docs/core/docker/snippets/App/Program.cs
diff --git a/docs/core/install/how-to-detect-installed-versions.md b/docs/core/install/how-to-detect-installed-versions.md
index 91b10e84594b3..ccbcfb1e6af11 100644
--- a/docs/core/install/how-to-detect-installed-versions.md
+++ b/docs/core/install/how-to-detect-installed-versions.md
@@ -3,7 +3,7 @@ title: Check installed .NET versions on Windows, Linux, and macOS
description: Learn how to list which versions of .NET are installed on your computer. This includes the .NET runtime and SDK.
author: adegeo
ms.author: adegeo
-ms.date: 11/11/2024
+ms.date: 11/07/2025
ms.custom: updateeachrelease, linux-related-content
zone_pivot_groups: operating-systems-set-one
---
@@ -29,11 +29,10 @@ You get output similar to the following.
::: zone pivot="os-windows"
```console
-3.1.424 [C:\program files\dotnet\sdk]
-5.0.100 [C:\program files\dotnet\sdk]
-6.0.402 [C:\program files\dotnet\sdk]
7.0.404 [C:\program files\dotnet\sdk]
8.0.100 [C:\program files\dotnet\sdk]
+9.0.306 [C:\program files\dotnet\sdk]
+10.0.100 [C:\program files\dotnet\sdk]
```
::: zone-end
@@ -41,11 +40,10 @@ You get output similar to the following.
::: zone pivot="os-linux"
```bash
-3.1.424 [/home/user/dotnet/sdk]
-5.0.100 [/home/user/dotnet/sdk]
-6.0.402 [/home/user/dotnet/sdk]
7.0.404 [/home/user/dotnet/sdk]
8.0.100 [/home/user/dotnet/sdk]
+9.0.306 [/home/user/dotnet/sdk]
+10.0.100 [/home/user/dotnet/sdk]
```
::: zone-end
@@ -53,11 +51,10 @@ You get output similar to the following.
::: zone pivot="os-macos"
```bash
-3.1.424 [/usr/local/share/dotnet/sdk]
-5.0.100 [/usr/local/share/dotnet/sdk]
-6.0.402 [/usr/local/share/dotnet/sdk]
7.0.404 [/usr/local/share/dotnet/sdk]
8.0.100 [/usr/local/share/dotnet/sdk]
+9.0.306 [/usr/local/share/dotnet/sdk]
+10.0.100 [/usr/local/share/dotnet/sdk]
```
::: zone-end
@@ -75,19 +72,18 @@ You get output similar to the following.
::: zone pivot="os-windows"
```console
-Microsoft.AspNetCore.App 3.1.30 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
-Microsoft.AspNetCore.App 6.0.10 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
-Microsoft.NETCore.App 3.1.30 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
-Microsoft.NETCore.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
-Microsoft.NETCore.App 6.0.10 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
+Microsoft.AspNetCore.App 9.0.10 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
+Microsoft.AspNetCore.App 10.0.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 7.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
-Microsoft.WindowsDesktop.App 3.1.30 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
-Microsoft.WindowsDesktop.App 6.0.10 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
+Microsoft.NETCore.App 9.0.10 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
+Microsoft.NETCore.App 10.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 7.0.5 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 8.0.0 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
+Microsoft.WindowsDesktop.App 9.0.10 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
+Microsoft.WindowsDesktop.App 10.0.0 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
```
::: zone-end
@@ -109,6 +105,8 @@ Microsoft.NETCore.App 5.0.0 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.0 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.0 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.0 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]
+Microsoft.NETCore.App 9.0.0 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]
+Microsoft.NETCore.App 10.0.0 [/usr/lib/dotnet/shared/Microsoft.NETCore.App]
```
::: zone-end
@@ -130,6 +128,8 @@ Microsoft.NETCore.App 5.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.Ap
Microsoft.NETCore.App 6.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
+Microsoft.NETCore.App 9.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
+Microsoft.NETCore.App 10.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
```
::: zone-end
diff --git a/docs/core/install/includes/linux-install-100-apk.md b/docs/core/install/includes/linux-install-100-apk.md
new file mode 100644
index 0000000000000..0f99eb8e83e08
--- /dev/null
+++ b/docs/core/install/includes/linux-install-100-apk.md
@@ -0,0 +1,33 @@
+---
+author: adegeo
+ms.author: adegeo
+ms.date: 11/07/2025
+ms.topic: include
+ms.custom: linux-related-content
+---
+
+### Install the SDK
+
+The .NET SDK allows you to develop apps with .NET. If you install the .NET SDK, you don't need to install the corresponding runtime. To install the .NET SDK, run the following command:
+
+```bash
+sudo apk add dotnet10-sdk
+```
+
+To learn how to use the .NET CLI, see [.NET CLI overview](../../tools/index.md).
+
+### Install the runtime
+
+The ASP.NET Core Runtime allows you to run apps that were made with .NET that didn't provide the runtime. The following command installs the ASP.NET Core Runtime, which is the most compatible runtime for .NET. In your terminal, run the following command:
+
+```bash
+sudo apk add aspnetcore10-runtime
+```
+
+As an alternative to the ASP.NET Core Runtime, you can install the .NET Runtime, which doesn't include ASP.NET Core support: replace `aspnetcore10-runtime` in the previous command with `dotnet10-runtime`:
+
+```bash
+sudo apk add dotnet10-runtime
+```
+
+To learn how to use the .NET CLI, see [.NET CLI overview](../../tools/index.md).
diff --git a/docs/core/install/includes/linux-install-100-apt.md b/docs/core/install/includes/linux-install-100-apt.md
new file mode 100644
index 0000000000000..c6e10d5112331
--- /dev/null
+++ b/docs/core/install/includes/linux-install-100-apt.md
@@ -0,0 +1,35 @@
+---
+author: adegeo
+ms.author: adegeo
+ms.date: 11/07/2025
+ms.topic: include
+ms.custom: linux-related-content
+---
+
+### Install the SDK
+
+The .NET SDK allows you to develop apps with .NET. If you install the .NET SDK, you don't need to install the corresponding runtime. To install the .NET SDK, run the following commands:
+
+```bash
+sudo apt-get update && \
+ sudo apt-get install -y dotnet-sdk-10.0
+```
+
+To learn how to use the .NET CLI, see [.NET CLI overview](../../tools/index.md).
+
+### Install the runtime
+
+The ASP.NET Core Runtime allows you to run apps that were made with .NET that didn't provide the runtime. The following commands install the ASP.NET Core Runtime, which is the most compatible runtime for .NET. In your terminal, run the following commands:
+
+```bash
+sudo apt-get update && \
+ sudo apt-get install -y aspnetcore-runtime-10.0
+```
+
+As an alternative to the ASP.NET Core Runtime, you can install the .NET Runtime, which doesn't include ASP.NET Core support: replace `aspnetcore-runtime-10.0` in the previous command with `dotnet-runtime-10.0`:
+
+```bash
+sudo apt-get install -y dotnet-runtime-10.0
+```
+
+To learn how to use the .NET CLI, see [.NET CLI overview](../../tools/index.md).
diff --git a/docs/core/install/includes/linux-install-100-dnf.md b/docs/core/install/includes/linux-install-100-dnf.md
new file mode 100644
index 0000000000000..efe0a2441bc8d
--- /dev/null
+++ b/docs/core/install/includes/linux-install-100-dnf.md
@@ -0,0 +1,33 @@
+---
+author: adegeo
+ms.author: adegeo
+ms.date: 11/07/2025
+ms.topic: include
+ms.custom: linux-related-content
+---
+
+### Install the SDK
+
+The .NET SDK allows you to develop apps with .NET. If you install the .NET SDK, you don't need to install the corresponding runtime. To install the .NET SDK, run the following command:
+
+```bash
+sudo dnf install dotnet-sdk-10.0
+```
+
+To learn how to use the .NET CLI, see [.NET CLI overview](../../tools/index.md).
+
+### Install the runtime
+
+The ASP.NET Core Runtime allows you to run apps that were made with .NET that didn't provide the runtime. The following command installs the ASP.NET Core Runtime, which is the most compatible runtime for .NET. In your terminal, run the following command:
+
+```bash
+sudo dnf install aspnetcore-runtime-10.0
+```
+
+As an alternative to the ASP.NET Core Runtime, you can install the .NET Runtime, which doesn't include ASP.NET Core support: replace `aspnetcore-runtime-10.0` in the previous command with `dotnet-runtime-10.0`:
+
+```bash
+sudo dnf install dotnet-runtime-10.0
+```
+
+To learn how to use the .NET CLI, see [.NET CLI overview](../../tools/index.md).
diff --git a/docs/core/install/includes/linux-install-100-zyp.md b/docs/core/install/includes/linux-install-100-zyp.md
new file mode 100644
index 0000000000000..293f695d06c64
--- /dev/null
+++ b/docs/core/install/includes/linux-install-100-zyp.md
@@ -0,0 +1,33 @@
+---
+author: adegeo
+ms.author: adegeo
+ms.date: 11/07/2025
+ms.topic: include
+ms.custom: linux-related-content
+---
+
+### Install the SDK
+
+The .NET SDK allows you to develop apps with .NET. If you install the .NET SDK, you don't need to install the corresponding runtime. To install the .NET SDK, run the following command:
+
+```bash
+sudo zypper install dotnet-sdk-10.0
+```
+
+To learn how to use the .NET CLI, see [.NET CLI overview](../../tools/index.md).
+
+### Install the runtime
+
+The ASP.NET Core Runtime allows you to run apps that were made with .NET that didn't provide the runtime. The following command installs the ASP.NET Core Runtime, which is the most compatible runtime for .NET. In your terminal, run the following command:
+
+```bash
+sudo zypper install aspnetcore-runtime-10.0
+```
+
+As an alternative to the ASP.NET Core Runtime, you can install the .NET Runtime, which doesn't include ASP.NET Core support: replace `aspnetcore-runtime-10.0` in the previous command with `dotnet-runtime-10.0`:
+
+```bash
+sudo zypper install dotnet-runtime-10.0
+```
+
+To learn how to use the .NET CLI, see [.NET CLI overview](../../tools/index.md).
diff --git a/docs/core/install/includes/linux-install-package-manager-unsupported-architectures.md b/docs/core/install/includes/linux-install-package-manager-unsupported-architectures.md
new file mode 100644
index 0000000000000..fa137624f8b95
--- /dev/null
+++ b/docs/core/install/includes/linux-install-package-manager-unsupported-architectures.md
@@ -0,0 +1,19 @@
+---
+author: adegeo
+ms.author: adegeo
+ms.date: 11/10/2025
+ms.topic: include
+ms.custom: linux-related-content
+---
+
+> [!IMPORTANT]
+> The **Microsoft package feed** publishes packages for different architectures depending on the .NET version:
+>
+> - **.NET 10**: **x64** and **Arm64** packages only.
+> - **.NET 9**: **x64** packages only.
+> - **.NET 8**: **x64** packages only.
+>
+> If you need to install .NET on other architectures, such as **Arm32**, don't use a package manager with the Microsoft package feed. For more information on installing .NET **without a package manager**, see one of the following articles:
+>
+> - [Use the `install-dotnet` script to install .NET.](../linux-scripted-manual.md#scripted-install)
+> - [Manually install .NET.](../linux-scripted-manual.md#manual-install)
diff --git a/docs/core/install/includes/linux-install-package-manager-x64-arm64.md b/docs/core/install/includes/linux-install-package-manager-x64-arm64.md
new file mode 100644
index 0000000000000..d6bc0d400247f
--- /dev/null
+++ b/docs/core/install/includes/linux-install-package-manager-x64-arm64.md
@@ -0,0 +1,13 @@
+---
+author: adegeo
+ms.author: adegeo
+ms.date: 11/10/2025
+ms.topic: include
+ms.custom: linux-related-content
+---
+
+> [!IMPORTANT]
+> The **Microsoft package feed** only publishes **x64** and **Arm64** packages for .NET 10. If you need to install .NET on other architectures, such as **Arm32**, don't use a package manager with the Microsoft package feed. For more information on installing .NET **without a package manager**, see one of the following articles:
+>
+> - [Use the `install-dotnet` script to install .NET.](../linux-scripted-manual.md#scripted-install)
+> - [Manually install .NET.](../linux-scripted-manual.md#manual-install)
diff --git a/docs/core/install/includes/linux-install-package-manager-x64-only.md b/docs/core/install/includes/linux-install-package-manager-x64-only.md
new file mode 100644
index 0000000000000..8d8e5eebb2ea2
--- /dev/null
+++ b/docs/core/install/includes/linux-install-package-manager-x64-only.md
@@ -0,0 +1,13 @@
+---
+author: adegeo
+ms.author: adegeo
+ms.date: 11/10/2025
+ms.topic: include
+ms.custom: linux-related-content
+---
+
+> [!IMPORTANT]
+> The **Microsoft package feed** only publishes **x64** packages for .NET 9 and .NET 8. If you need to install .NET on other architectures, such as **Arm64**, don't use a package manager with the Microsoft package feed. For more information on installing .NET **without a package manager**, see one of the following articles:
+>
+> - [Use the `install-dotnet` script to install .NET.](../linux-scripted-manual.md#scripted-install)
+> - [Manually install .NET.](../linux-scripted-manual.md#manual-install)
diff --git a/docs/core/install/includes/linux-install-package-manager-x64-vs-arm-ubuntu.md b/docs/core/install/includes/linux-install-package-manager-x64-vs-arm-ubuntu.md
index f6551abb9397e..fb22ec5f0ce5f 100644
--- a/docs/core/install/includes/linux-install-package-manager-x64-vs-arm-ubuntu.md
+++ b/docs/core/install/includes/linux-install-package-manager-x64-vs-arm-ubuntu.md
@@ -7,7 +7,7 @@ ms.custom: linux-related-content
---
> [!IMPORTANT]
-> Using a package manager to install .NET from the **Microsoft package feed** only supports the **x64** architecture. Other architectures, such as **Arm**, aren't supported by the **Microsoft package feed**. Use the Ubuntu feeds or manually install .NET. Be cautious of package mix up problems when using multiple feeds. For more information, see [.NET package mix ups on Linux](../linux-package-mixup.md?pivots=os-linux-ubuntu#whats-going-on).
+> Using a package manager to install .NET from the **Microsoft package feed** only supports the **x64** architecture. Other architectures, such as **Arm64**, aren't supported by the **Microsoft package feed**. Use the Ubuntu feeds or manually install .NET. Be cautious of package mix up problems when using multiple feeds. For more information, see [.NET package mix ups on Linux](../linux-package-mixup.md?pivots=os-linux-ubuntu#whats-going-on).
For more information on installing .NET **without a package manager**, see one of the following articles:
diff --git a/docs/core/install/includes/linux-install-package-manager-x64-vs-arm.md b/docs/core/install/includes/linux-install-package-manager-x64-vs-arm.md
deleted file mode 100644
index 64511c2425b7d..0000000000000
--- a/docs/core/install/includes/linux-install-package-manager-x64-vs-arm.md
+++ /dev/null
@@ -1,15 +0,0 @@
----
-author: adegeo
-ms.author: adegeo
-ms.date: 11/11/2024
-ms.topic: include
-ms.custom: linux-related-content
----
-
-> [!IMPORTANT]
-> Using a package manager to install .NET from the **Microsoft package feed** only supports the **x64** architecture. Other architectures, such as **Arm**, aren't supported by the **Microsoft package feed**.
-
-For more information on installing .NET **without a package manager**, see one of the following articles:
-
-- [Use the `install-dotnet` script to install .NET.](../linux-scripted-manual.md#scripted-install)
-- [Manually install .NET.](../linux-scripted-manual.md#manual-install)
diff --git a/docs/core/install/includes/linux-release-wait.md b/docs/core/install/includes/linux-release-wait.md
index 40846c4fbbddd..a11a97237f995 100644
--- a/docs/core/install/includes/linux-release-wait.md
+++ b/docs/core/install/includes/linux-release-wait.md
@@ -1,10 +1,10 @@
---
author: adegeo
ms.author: adegeo
-ms.date: 11/11/2024
+ms.date: 11/06/2025
ms.topic: include
ms.custom: linux-related-content
---
> [!IMPORTANT]
-> .NET 9 was released on November 12, 2024. It may take time for the packages to appear in the package manager feeds or for your specific Linux distribution to include it.
+> .NET 10 was released on November 11, 2025. It may take time for the packages to appear in the package manager feeds or for your specific Linux distribution to include it.
diff --git a/docs/core/install/includes/linux-rpm-install-dependencies.md b/docs/core/install/includes/linux-rpm-install-dependencies.md
deleted file mode 100644
index e698df1faf571..0000000000000
--- a/docs/core/install/includes/linux-rpm-install-dependencies.md
+++ /dev/null
@@ -1,24 +0,0 @@
----
-author: adegeo
-ms.author: adegeo
-ms.date: 11/11/2024
-ms.topic: include
-ms.custom: linux-related-content
----
-
-When you install with a package manager, these libraries are installed for you. But, if you manually install .NET or you publish a self-contained app, you'll need to make sure these libraries are installed:
-
-- krb5-libs
-- libicu
-- openssl-libs
-- zlib
-
-If the target runtime environment's OpenSSL version is 1.1 or newer, you'll need to install `compat-openssl10`.
-
-Dependencies can be installed with the `yum install` command. The following snippet demonstrates installing the `libicu` library:
-
-```bash
-sudo yum install libicu
-```
-
-For more information about the dependencies, see [Self-contained Linux apps](https://github.com/dotnet/core/blob/main/Documentation/self-contained-linux-apps.md).
diff --git a/docs/core/install/includes/supported-versions.md b/docs/core/install/includes/supported-versions.md
index 71565cc9f3189..fd2e78e8cdaa5 100644
--- a/docs/core/install/includes/supported-versions.md
+++ b/docs/core/install/includes/supported-versions.md
@@ -1,7 +1,7 @@
---
author: adegeo
ms.author: adegeo
-ms.date: 08/26/2025
+ms.date: 11/07/2025
ms.topic: include
---
@@ -9,6 +9,7 @@ Microsoft publishes .NET under two different support policies, Long Term Support
The versions of .NET that are currently supported by Microsoft are:
+- 10.0 (LTS)—Support ends **November 14, 2028**.
- 9.0 (STS)—Support ends **November 10, 2026**.
- 8.0 (LTS)—Support ends **November 10, 2026**.
diff --git a/docs/core/install/includes/verify-download-windows.md b/docs/core/install/includes/verify-download-windows.md
deleted file mode 100644
index 770de9692cc7b..0000000000000
--- a/docs/core/install/includes/verify-download-windows.md
+++ /dev/null
@@ -1,58 +0,0 @@
----
-author: adegeo
-ms.author: adegeo
-ms.date: 11/14/2023
-ms.topic: include
----
-
-You can use **PowerShell** or **Command Prompt** to validate the checksum of the file you've downloaded. For example, the following command reports the checksum of the _dotnet-sdk-8.0.100-win-x64.exe_ file:
-
-```cmd
-> certutil -hashfile dotnet-sdk-8.0.100-win-x64.exe SHA512
-SHA512 hash of dotnet-sdk-8.0.100-win-x64.exe:
-248acec95b381e5302255310fb9396267fd74a4a2dc2c3a5989031969cb31f8270cbd14bda1bc0352ac90f8138bddad1a58e4af1e56cc4a1613b1cf2854b518e
-CertUtil: -hashfile command completed successfully.
-```
-
-```powershell
-> (Get-FileHash .\dotnet-sdk-8.0.100-win-x64.exe -Algorithm SHA512).Hash
-248acec95b381e5302255310fb9396267fd74a4a2dc2c3a5989031969cb31f8270cbd14bda1bc0352ac90f8138bddad1a58e4af1e56cc4a1613b1cf2854b518e
-```
-
-Compare the checksum with the value provided by the download site.
-
-### Use PowerShell and a checksum file to validate
-
-The .NET release notes contain a link to a checksum file you can use to validate your downloaded file. The following steps describe how to download the checksum file and validate a .NET install binary:
-
-01. The release notes page for .NET 8 on GitHub at contains a section named **Releases**. The table in that section links to the downloads and checksum files for each .NET 8 release:
-
- :::image type="content" source="../media/install-sdk/release-notes-root.png" alt-text="The github release notes version table for .NET":::
-
-01. Select the link for the version of .NET that you downloaded. The previous section used .NET SDK 8.0.100, which is in the .NET 8.0.0 release.
-
- > [!TIP]
- > If you're not sure which .NET release contains your checksum file, explore the links until you find it.
-
-01. In the release page, you can see the .NET Runtime and .NET SDK version, and a link to the checksum file:
-
- :::image type="content" source="../media/install-sdk/release-notes-version.png" alt-text="The download table with checksums for .NET":::
-
-01. Copy the link to the checksum file.
-
-01. Use the following script, but replace the link to download the appropriate checksum file:
-
- ```powershell
- Invoke-WebRequest https://builds.dotnet.microsoft.com/dotnet/checksums/8.0.0-sha.txt -OutFile 8.0.0-sha.txt
- ```
-
-01. With both the checksum file and the .NET release file downloaded to the same directory, search the checksum file for the checksum of the .NET download:
-
- When validation passes, you see **True** printed:
-
- ```powershell
- > (Get-Content .\8.0.0-sha.txt | Select-String "dotnet-sdk-8.0.100-win-x64.exe").Line -like (Get-FileHash .\dotnet-sdk-8.0.100-win-x64.exe -Algorithm SHA512).Hash + "*"
- True
- ```
-
- If you see **False** printed, the file you downloaded isn't valid and shouldn't be used.
diff --git a/docs/core/install/includes/versions-not-supported.md b/docs/core/install/includes/versions-not-supported.md
index 35bcfd7222c10..9b25a62cf5db8 100644
--- a/docs/core/install/includes/versions-not-supported.md
+++ b/docs/core/install/includes/versions-not-supported.md
@@ -1,7 +1,7 @@
---
author: adegeo
ms.author: adegeo
-ms.date: 11/11/2024
+ms.date: 11/06/2025
ms.topic: include
---
diff --git a/docs/core/install/index.yml b/docs/core/install/index.yml
index ec58a19e0411c..39a51beef48ab 100644
--- a/docs/core/install/index.yml
+++ b/docs/core/install/index.yml
@@ -7,7 +7,7 @@ metadata:
title: Install .NET on Windows, Linux, and macOS
description: Learn where to download and install .NET on Windows, Linux, and macOS. Discover the dependencies required to develop, deploy, and run .NET apps.
ms.topic: landing-page
- ms.date: 01/26/2023
+ ms.date: 11/08/2025
# linkListType: architecture | concept | deploy | download | get-started | how-to-guide | learn | overview | quickstart | reference | sample | tutorial | video | whats-new
diff --git a/docs/core/install/linux-alpine.md b/docs/core/install/linux-alpine.md
index 723a65b1dcfb6..9982ac8c347e0 100644
--- a/docs/core/install/linux-alpine.md
+++ b/docs/core/install/linux-alpine.md
@@ -3,7 +3,7 @@ title: Install .NET on Alpine
description: Learn about which versions of .NET SDK and .NET Runtime are supported, and how to install .NET on Alpine.
author: adegeo
ms.author: adegeo
-ms.date: 12/13/2024
+ms.date: 11/07/2025
ms.custom: linux-related-content
---
@@ -13,6 +13,8 @@ ms.custom: linux-related-content
If you're using Docker, consider using [official .NET Docker images](../docker/introduction.md#net-images) instead of installing .NET yourself.
+[!INCLUDE [linux-release-wait](includes/linux-release-wait.md)]
+
[!INCLUDE [linux-intro-sdk-vs-runtime](includes/linux-intro-sdk-vs-runtime.md)]
## Supported distributions
@@ -21,18 +23,21 @@ The following table is a list of currently supported .NET releases and the versi
| Alpine | Supported Version | Available in Package Manager |
|--------|-------------------|------------------------------|
-| 3.21 | 9.0, 8.0 | 9.0, 8.0 |
-| 3.20 | 9.0, 8.0 | 8.0, 6.0 |
-| 3.19 | 9.0, 8.0 | 7.0, 6.0 |
-| 3.18 | 8.0 | 7.0, 6.0 |
+| 3.22 | 10, 9, 8 | 9, 8 |
+| 3.21 | 9, 8 | 9, 8 |
+| 3.20 | 9, 8 | 8, 6 |
[!INCLUDE [versions-not-supported](includes/versions-not-supported.md)]
## Install .NET
-# [.NET 9](#tab/dotnet9)
+# [.NET 10](#tab/dotnet10)
+
+[!INCLUDE [linux-release-wait](includes/linux-release-wait.md)]
-**Not supported on Alpine 3.18.**
+[!INCLUDE [linux-apk-install-100](includes/linux-install-100-apk.md)]
+
+# [.NET 9](#tab/dotnet9)
[!INCLUDE [linux-apk-install-90](includes/linux-install-90-apk.md)]
@@ -46,16 +51,16 @@ The following table is a list of currently supported .NET releases and the versi
The following table is a list of currently supported .NET releases and the architecture of Alpine they're supported on. These versions remain supported until either the version of [.NET reaches end-of-support](https://dotnet.microsoft.com/platform/support/policy/dotnet-core) or the architecture of [Alpine is supported#](https://alpinelinux.org/releases/). Note that only `x86_64`, `armv7`, `aarch64` is officially supported by Microsoft. Other architectures are supported by the distribution maintainers, and can be installed using the `apk` package manager, if a package is available for that architecture.
-| Architecture | .NET 9 | .NET 8 |
-|--------------|------------------------|------------------------|
-| x86_64 | 3.19, 3.20, 3.21 | 3.18, 3.19, 3.20, 3.21 |
-| x86 | None | None |
-| aarch64 | 3.19, 3.20, 3.21 | 3.18, 3.19, 3.20, 3.21 |
-| armv7 | 3.19, 3.20, 3.21 | 3.18, 3.19, 3.20, 3.21 |
-| armhf | None | None |
-| s390x | None | None |
-| ppc64le | None | None |
-| riscv64 | None | None |
+| Architecture | .NET 10 | .NET 9 | .NET 8 |
+|--------------|----------|-------------------|------------------------|
+| x86_64 | 3.22 | 3.20, 3.21, 3.22 | 3.20, 3.21, 3.22 |
+| x86 | None | None | None |
+| aarch64 | 3.22 | 3.20, 3.21, 3.22 | 3.20, 3.21, 3.22 |
+| armv7 | 3.22 | 3.20, 3.21, 3.22 | 3.20, 3.21, 3.22 |
+| armhf | None | None | None |
+| s390x | None | None | None |
+| ppc64le | None | None | None |
+| riscv64 | None | None | None |
## Install preview versions
@@ -69,15 +74,16 @@ The following table is a list of currently supported .NET releases and the archi
When you install with a package manager, these libraries are installed for you. But, if you manually install .NET or you publish a self-contained app, you'll need to make sure these libraries are installed:
-### 3.18+
+### 3.20+
-- ca-certificates-bundle
+- ca-certificates
- libgcc
- libssl3
- libstdc++
-- zlib
-- icu-libs and icu-data-full (unless the .NET app is running in [globalization-invariant mode](../runtime-config/globalization.md#invariant-mode)
-- libgdiplus (if the .NET app requires the *System.Drawing.Common* assembly)
+- zlib (.NET 8 only)
+- icu-libs and icu-data-full (unless the .NET app is running in [globalization-invariant mode](../runtime-config/globalization.md#invariant-mode))
+- tzdata
+- krb5
Use the `apk add` command to install the dependencies.
diff --git a/docs/core/install/linux-debian.md b/docs/core/install/linux-debian.md
index 92a6f4503f465..fed35afd41b0c 100644
--- a/docs/core/install/linux-debian.md
+++ b/docs/core/install/linux-debian.md
@@ -3,7 +3,7 @@ title: Install .NET on Debian
description: Learn about which versions of .NET SDK and .NET Runtime are supported, and how to install .NET on Debian.
author: adegeo
ms.author: adegeo
-ms.date: 11/01/2024
+ms.date: 11/07/2025
ms.custom: linux-related-content
---
@@ -13,15 +13,14 @@ This article describes how to install .NET on Debian. When a Debian version fall
[!INCLUDE [linux-intro-sdk-vs-runtime](includes/linux-intro-sdk-vs-runtime.md)]
-[!INCLUDE [linux-install-package-manager-x64-vs-arm](includes/linux-install-package-manager-x64-vs-arm.md)]
-
## Supported distributions
The following table is a list of currently supported .NET releases and the versions of Debian they're supported on. These versions remain supported until either the version of [.NET reaches end-of-support](https://dotnet.microsoft.com/platform/support/policy/dotnet-core) or the version of [Debian reaches end-of-life](https://wiki.debian.org/DebianReleases).
-| Debian | .NET |
-|--------|---------|
-| 12 | 9, 8 |
+| Debian | .NET |
+|--------|----------|
+| 13 | 10, 9, 8 |
+| 12 | 10, 9, 8 |
[!INCLUDE [versions-not-supported](includes/versions-not-supported.md)]
@@ -33,6 +32,38 @@ The following table is a list of currently supported .NET releases and the versi
[!INCLUDE [package-manager uninstall notice](./includes/linux-uninstall-preview-info.md)]
+## Debian 13
+
+[!INCLUDE [linux-prep-intro-apt](includes/linux-prep-intro-apt.md)]
+
+```bash
+wget https://packages.microsoft.com/config/debian/13/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
+sudo dpkg -i packages-microsoft-prod.deb
+rm packages-microsoft-prod.deb
+```
+
+[!INCLUDE [linux-release-wait](includes/linux-release-wait.md)]
+
+# [.NET 10](#tab/dotnet10)
+
+[!INCLUDE [linux-install-package-manager-x64-arm64](includes/linux-install-package-manager-x64-arm64.md)]
+
+[!INCLUDE [linux-apt-install-100](includes/linux-install-100-apt.md)]
+
+# [.NET 9](#tab/dotnet9)
+
+[!INCLUDE [linux-install-package-manager-x64-only](includes/linux-install-package-manager-x64-only.md)]
+
+[!INCLUDE [linux-apt-install-90](includes/linux-install-90-apt.md)]
+
+# [.NET 8](#tab/dotnet8)
+
+[!INCLUDE [linux-install-package-manager-x64-only](includes/linux-install-package-manager-x64-only.md)]
+
+[!INCLUDE [linux-apt-install-80](includes/linux-install-80-apt.md)]
+
+---
+
## Debian 12
[!INCLUDE [linux-prep-intro-apt](includes/linux-prep-intro-apt.md)]
@@ -43,12 +74,24 @@ sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb
```
+# [.NET 10](#tab/dotnet10)
+
+[!INCLUDE [linux-release-wait](includes/linux-release-wait.md)]
+
+[!INCLUDE [linux-install-package-manager-x64-arm64](includes/linux-install-package-manager-x64-arm64.md)]
+
+[!INCLUDE [linux-apt-install-100](includes/linux-install-100-apt.md)]
+
# [.NET 9](#tab/dotnet9)
+[!INCLUDE [linux-install-package-manager-x64-only](includes/linux-install-package-manager-x64-only.md)]
+
[!INCLUDE [linux-apt-install-90](includes/linux-install-90-apt.md)]
# [.NET 8](#tab/dotnet8)
+[!INCLUDE [linux-install-package-manager-x64-only](includes/linux-install-package-manager-x64-only.md)]
+
[!INCLUDE [linux-apt-install-80](includes/linux-install-80-apt.md)]
---
@@ -70,7 +113,7 @@ This section provides information on common errors you may get while using APT t
### Unable to find package
-[!INCLUDE [linux-install-package-manager-x64-vs-arm](includes/linux-install-package-manager-x64-vs-arm.md)]
+[!INCLUDE [linux-install-package-manager-unsupported-architectures](includes/linux-install-package-manager-unsupported-architectures.md)]
### Unable to locate \\ Some packages could not be installed
@@ -92,7 +135,7 @@ If you're using a Debian version prior to 12, try the following commands:
When you install with a package manager, these libraries are installed for you. But, if you manually install .NET or you publish a self-contained app, you'll need to make sure these libraries are installed:
-### 12.x
+### 13.x
- libc6
- libgcc-s1
@@ -102,23 +145,13 @@ When you install with a package manager, these libraries are installed for you.
- libstdc++6
- zlib1g
-### 11.x
+### 12.x
- libc6
- libgcc-s1
- libgssapi-krb5-2
-- libicu67
-- libssl1.1
-- libstdc++6
-- zlib1g
-
-### 10.x
-
-- libc6
-- libgcc1
-- libgssapi-krb5-2
-- libicu63
-- libssl1.1
+- libicu72
+- libssl3
- libstdc++6
- zlib1g
diff --git a/docs/core/install/linux-fedora.md b/docs/core/install/linux-fedora.md
index 0655bb2082ea5..a0284616faf21 100644
--- a/docs/core/install/linux-fedora.md
+++ b/docs/core/install/linux-fedora.md
@@ -3,7 +3,7 @@ title: Install .NET on Fedora
description: Learn about which versions of .NET SDK and .NET Runtime are supported, and how to install .NET on Fedora.
author: adegeo
ms.author: adegeo
-ms.date: 11/01/2024
+ms.date: 11/07/2025
ms.custom: linux-related-content
---
@@ -22,13 +22,20 @@ For more information on installing .NET without a package manager, see one of th
The following table is a list of currently supported .NET releases and the versions of Fedora they're supported on. These versions remain supported until either the version of [.NET reaches end-of-support](https://dotnet.microsoft.com/platform/support/policy/dotnet-core) or the version of [Fedora reaches end-of-life](https://fedoraproject.org/wiki/End_of_life).
-| Fedora | .NET |
-|--------|---------------|
-| 41 | 9.0, 8.0 |
-| 40 | 9.0, 8.0 |
+| Fedora | .NET |
+|--------|----------|
+| 43 | 10, 9, 8 |
+| 42 | 10, 9, 8 |
+| 41 | 9, 8 |
[!INCLUDE [versions-not-supported](includes/versions-not-supported.md)]
+# [.NET 10](#tab/dotnet10)
+
+[!INCLUDE [linux-release-wait](includes/linux-release-wait.md)]
+
+[!INCLUDE [linux-dnf-install-100](includes/linux-install-100-dnf.md)]
+
# [.NET 9](#tab/dotnet9)
[!INCLUDE [linux-dnf-install-90](includes/linux-install-90-dnf.md)]
@@ -49,7 +56,23 @@ The following table is a list of currently supported .NET releases and the versi
## Dependencies
-[!INCLUDE [linux-rpm-install-dependencies](includes/linux-rpm-install-dependencies.md)]
+.NET depends on various Linux packages for different functionality. The following packages are required:
+
+- glibc
+- libgcc
+- ca-certificates
+- openssl-libs
+- libstdc++
+- libicu
+- tzdata
+- krb5-libs
+- zlib (required for .NET 8 only)
+
+You can install all the required packages with the following command:
+
+```bash
+sudo dnf install -y glibc libgcc ca-certificates openssl-libs libstdc++ libicu tzdata krb5-libs zlib
+```
## How to install other versions
diff --git a/docs/core/install/linux-opensuse.md b/docs/core/install/linux-opensuse.md
index 5cd5a09e9b3a2..95deeac92e265 100644
--- a/docs/core/install/linux-opensuse.md
+++ b/docs/core/install/linux-opensuse.md
@@ -3,7 +3,7 @@ title: Install .NET on openSUSE Leap
description: Learn about which versions of .NET SDK and .NET Runtime are supported, and how to install .NET on openSUSE Leap.
author: adegeo
ms.author: adegeo
-ms.date: 11/01/2024
+ms.date: 11/07/2025
ms.custom: linux-related-content
---
@@ -13,16 +13,14 @@ ms.custom: linux-related-content
[!INCLUDE [linux-intro-sdk-vs-runtime](includes/linux-intro-sdk-vs-runtime.md)]
-[!INCLUDE [linux-install-package-manager-x64-vs-arm](includes/linux-install-package-manager-x64-vs-arm.md)]
-
## Supported distributions
The following table is a list of currently supported .NET releases on openSUSE Leap 15. These versions remain supported until either the version of [.NET reaches end-of-support](https://dotnet.microsoft.com/platform/support/policy/dotnet-core) or the version of openSUSE Leap is no longer supported.
| openSUSE Leap | .NET |
|---------------|----------|
-| 15.6 | 9.0, 8.0 |
-| 15.5 | 9.0, 8.0 |
+| 16 | 10, 9, 8 |
+| 15.6 | 10, 9, 8 |
[!INCLUDE [versions-not-supported](includes/versions-not-supported.md)]
@@ -34,6 +32,40 @@ The following table is a list of currently supported .NET releases on openSUSE L
[!INCLUDE [package-manager uninstall notice](./includes/linux-uninstall-preview-info.md)]
+## openSUSE Leap 16
+
+[!INCLUDE [linux-prep-intro-generic](includes/linux-prep-intro-generic.md)]
+
+```bash
+sudo zypper install libicu
+sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
+wget https://packages.microsoft.com/config/opensuse/16/prod.repo
+sudo mv prod.repo /etc/zypp/repos.d/microsoft-prod.repo
+sudo chown root:root /etc/zypp/repos.d/microsoft-prod.repo
+```
+
+# [.NET 10](#tab/dotnet10)
+
+[!INCLUDE [linux-release-wait](includes/linux-release-wait.md)]
+
+[!INCLUDE [linux-install-package-manager-x64-arm64](includes/linux-install-package-manager-x64-arm64.md)]
+
+[!INCLUDE [linux-zyp-install-100](includes/linux-install-100-zyp.md)]
+
+# [.NET 9](#tab/dotnet9)
+
+[!INCLUDE [linux-install-package-manager-x64-only](includes/linux-install-package-manager-x64-only.md)]
+
+[!INCLUDE [linux-zyp-install-90](includes/linux-install-90-zyp.md)]
+
+# [.NET 8](#tab/dotnet8)
+
+[!INCLUDE [linux-install-package-manager-x64-only](includes/linux-install-package-manager-x64-only.md)]
+
+[!INCLUDE [linux-zyp-install-80](includes/linux-install-80-zyp.md)]
+
+---
+
## openSUSE Leap 15
[!INCLUDE [linux-prep-intro-generic](includes/linux-prep-intro-generic.md)]
@@ -46,12 +78,22 @@ sudo mv prod.repo /etc/zypp/repos.d/microsoft-prod.repo
sudo chown root:root /etc/zypp/repos.d/microsoft-prod.repo
```
+# [.NET 10](#tab/dotnet10)
+
+[!INCLUDE [linux-install-package-manager-x64-arm64](includes/linux-install-package-manager-x64-arm64.md)]
+
+[!INCLUDE [linux-zyp-install-100](includes/linux-install-100-zyp.md)]
+
# [.NET 9](#tab/dotnet9)
+[!INCLUDE [linux-install-package-manager-x64-only](includes/linux-install-package-manager-x64-only.md)]
+
[!INCLUDE [linux-zyp-install-90](includes/linux-install-90-zyp.md)]
# [.NET 8](#tab/dotnet8)
+[!INCLUDE [linux-install-package-manager-x64-only](includes/linux-install-package-manager-x64-only.md)]
+
[!INCLUDE [linux-zyp-install-80](includes/linux-install-80-zyp.md)]
---
@@ -66,7 +108,7 @@ This section provides information on common errors you may get while using the p
### Unable to find package
-[!INCLUDE [linux-install-package-manager-x64-vs-arm](includes/linux-install-package-manager-x64-vs-arm.md)]
+[!INCLUDE [linux-install-package-manager-unsupported-architectures](includes/linux-install-package-manager-unsupported-architectures.md)]
### Failed to fetch
@@ -78,9 +120,7 @@ When you install with a package manager, these libraries are installed for you.
- krb5
- libicu
-- libopenssl1_0_0
-
-If the target runtime environment's OpenSSL version is 1.1 or newer, you'll need to install `compat-openssl10`.
+- libopenssl1_1
Dependencies can be installed with the `zypper install` command. The following snippet demonstrates installing the `krb5` library:
diff --git a/docs/core/install/linux-package-mixup.md b/docs/core/install/linux-package-mixup.md
index 8e94ecabb5df9..9b8dccc406d6c 100644
--- a/docs/core/install/linux-package-mixup.md
+++ b/docs/core/install/linux-package-mixup.md
@@ -3,7 +3,7 @@ title: Troubleshoot .NET package mix ups on Linux
description: Learn about how to troubleshoot strange .NET package errors on Linux. These errors may occur when you run the dotnet command.
author: omajid
ms.author: adegeo
-ms.date: 11/04/2024
+ms.date: 11/08/2025
ms.custom: linux-related-content
no-loc: ['usr','lib64','share','dotnet','libhostfxr.so', 'fxr', 'FrameworkList.xml', 'System.IO.FileNotFoundException']
zone_pivot_groups: operating-systems-set-two
diff --git a/docs/core/install/linux-rhel.md b/docs/core/install/linux-rhel.md
index d7d94393e17d4..0bad631242e12 100644
--- a/docs/core/install/linux-rhel.md
+++ b/docs/core/install/linux-rhel.md
@@ -3,7 +3,7 @@ title: Install .NET on RHEL and CentOS Stream
description: Learn about which versions of .NET are supported, and how to install .NET on Red Hat Enterprise Linux and CentOS Stream.
author: adegeo
ms.author: adegeo
-ms.date: 12/13/2024
+ms.date: 11/07/2025
ms.custom: linux-related-content
---
@@ -24,13 +24,13 @@ To install .NET from Red Hat on RHEL, you first need to register using the Red H
The following table is a list of currently supported .NET releases on both RHEL and CentOS Stream. These versions remain supported until either the version of [.NET reaches end-of-support](https://dotnet.microsoft.com/platform/support/policy/dotnet-core) or the Linux distribution is no longer supported.
-| Distribution | .NET |
-|---------------------------------------------------------------|----------|
-| [RHEL 9](#rhel-9) | 9.0, 8.0 |
-| [RHEL 8](#rhel-8) | 9.0, 8.0 |
-| [CentOS Stream 9](#centos-stream-9) | 9.0, 8.0 |
-| [CentOS Stream 8](#centos-stream-8) | 8.0, |
-| [CentOS Linux is no longer supported](#where-is-centos-linux) | |
+| Distribution | .NET |
+|---------------------------------------|----------|
+| [RHEL 10](#rhel-10) | 10, 9, 8 |
+| [RHEL 9](#rhel-9) | 10, 9, 8 |
+| [RHEL 8](#rhel-8) | 9, 8 |
+| [CentOS Stream 10](#centos-stream-10) | 10, 9, 8 |
+| [CentOS Stream 9](#centos-stream-9) | 10, 9, 8 |
[!INCLUDE [versions-not-supported](includes/versions-not-supported.md)]
@@ -42,11 +42,19 @@ The following table is a list of currently supported .NET releases on both RHEL
[!INCLUDE [package-manager uninstall notice](./includes/linux-uninstall-preview-info.md)]
+## RHEL 10
+
+[!INCLUDE [linux-release-wait](includes/linux-release-wait.md)]
+
+.NET is included in the [AppStream repositories](https://access.redhat.com/support/policy/updates/rhel-app-streams-life-cycle) for RHEL 10.
+
+[!INCLUDE [linux-dnf-install-100](includes/linux-install-100-dnf.md)]
+
## RHEL 9
.NET is included in the [AppStream repositories](https://access.redhat.com/support/policy/updates/rhel-app-streams-life-cycle) for RHEL 9.
-[!INCLUDE [linux-dnf-install-90](includes/linux-install-90-dnf.md)]
+[!INCLUDE [linux-dnf-install-100](includes/linux-install-100-dnf.md)]
## RHEL 8
@@ -54,22 +62,17 @@ The following table is a list of currently supported .NET releases on both RHEL
[!INCLUDE [linux-dnf-install-90](includes/linux-install-90-dnf.md)]
-## CentOS Stream 9
+## CentOS Stream 10
-.NET is included in the AppStream repositories for CentOS Stream 9.
-
-[!INCLUDE [linux-dnf-install-90](includes/linux-install-90-dnf.md)]
+.NET is included in the AppStream repositories for CentOS Stream 10.
-## CentOS Stream 8
+[!INCLUDE [linux-dnf-install-100](includes/linux-install-100-dnf.md)]
-Use the Microsoft repository to install .NET:
+## CentOS Stream 9
-```bash
-sudo rpm -Uvh https://packages.microsoft.com/config/centos/8/packages-microsoft-prod.rpm
-sudo yum install dotnet-sdk-8.0
-```
+.NET is included in the AppStream repositories for CentOS Stream 9.
-To learn how to use the .NET CLI, see [.NET CLI overview](../tools/index.md).
+[!INCLUDE [linux-dnf-install-100](includes/linux-install-100-dnf.md)]
## Where is CentOS Linux
@@ -77,11 +80,33 @@ To learn how to use the .NET CLI, see [.NET CLI overview](../tools/index.md).
## Dependencies
-[!INCLUDE [linux-rpm-install-dependencies](includes/linux-rpm-install-dependencies.md)]
+The following libraries are required for .NET to run on RHEL and CentOS Stream. Install them using the `dnf` package manager:
+
+- glibc
+- libgcc
+- ca-certificates
+- openssl-libs
+- libstdc++
+- libicu
+- tzdata
+- krb5-libs
+- zlib (required for .NET 8 only)
+
+For example, to install all dependencies:
+
+```bash
+sudo dnf install glibc libgcc ca-certificates openssl-libs libstdc++ libicu tzdata krb5-libs
+```
+
+For .NET 8, also install:
+
+```bash
+sudo dnf install zlib
+```
## How to install other versions
-Consult the [Red Hat documentation for .NET](https://access.redhat.com/documentation/en-us/net/5.0) on the steps required to install other releases of .NET.
+Consult the [Red Hat documentation for .NET](https://docs.redhat.com/documentation/net/) on the steps required to install other releases of .NET.
## Troubleshoot the package manager
diff --git a/docs/core/install/linux-scripted-manual.md b/docs/core/install/linux-scripted-manual.md
index 3821ec806b325..b781569b1fcb7 100644
--- a/docs/core/install/linux-scripted-manual.md
+++ b/docs/core/install/linux-scripted-manual.md
@@ -3,7 +3,7 @@ title: Install .NET on Linux without using a package manager
description: Demonstrates how to install the .NET SDK and the .NET Runtime on Linux without a package manager. Use the install script or manually extract the binaries.
author: adegeo
ms.author: adegeo
-ms.date: 08/26/2025
+ms.date: 11/08/2025
ms.custom: linux-related-content, updateeachrelease
---
@@ -20,17 +20,17 @@ There are two types of supported releases, Long Term Support (LTS) and Standard
The following table lists the support status of each version of .NET (and .NET Core):
| ✔️ Supported | ❌ Out of support |
-|-------------|------------------|
-| 9 (STS) | 7 |
-| 8 (LTS) | 6 (LTS) |
-| | 5 |
-| | 3.1 |
-| | 3.0 |
-| | 2.2 |
-| | 2.1 |
-| | 2.0 |
-| | 1.1 |
-| | 1.0 |
+|---------------|-------------------|
+| 10 (LTS) | 7 |
+| 9 (STS) | 6 |
+| 8 (LTS) | 5 |
+| | 3.1 |
+| | 3.0 |
+| | 2.2 |
+| | 2.1 |
+| | 2.0 |
+| | 1.1 |
+| | 1.0 |
## Dependencies
@@ -49,9 +49,14 @@ For generic information about the dependencies, see [Self-contained Linux apps](
If your distribution wasn't previously listed, and is RPM-based, you might need the following dependencies:
-- krb5-libs
-- libicu
+- glibc
+- libgcc
+- ca-certificates
- openssl-libs
+- libstdc++
+- libicu
+- tzdata
+- krb5-libs
### DEB dependencies
@@ -90,7 +95,7 @@ Before running this script, make sure you grant permission for this script to ru
chmod +x ./dotnet-install.sh
```
-The script defaults to installing the latest [long term support (LTS)](https://dotnet.microsoft.com/platform/support/policy/dotnet-core) SDK version, which is .NET 8. To install the latest release, which might not be an (LTS) version, use the `--version latest` parameter.
+The script defaults to installing the latest [long term support (LTS)](https://dotnet.microsoft.com/platform/support/policy/dotnet-core) SDK version, which is .NET 10. To install the latest release, which might not be an (LTS) version, use the `--version latest` parameter.
```bash
./dotnet-install.sh --version latest
@@ -122,6 +127,7 @@ As an alternative to the package managers, you can download and manually install
Download a **binary** release for either the SDK or the runtime from one of the following sites. The .NET SDK includes the corresponding runtime:
+- ✔️ [.NET 10 downloads](https://dotnet.microsoft.com/download/dotnet/10.0)
- ✔️ [.NET 9 downloads](https://dotnet.microsoft.com/download/dotnet/9.0)
- ✔️ [.NET 8 downloads](https://dotnet.microsoft.com/download/dotnet/8.0)
- [All .NET Core downloads](https://dotnet.microsoft.com/download/dotnet)
@@ -140,7 +146,7 @@ The following commands use Bash to set the environment variable `DOTNET_ROOT` to
> If you run these commands, remember to change the `DOTNET_FILE` value to the name of the .NET binary you downloaded.
```bash
-DOTNET_FILE=dotnet-sdk-9.0.100-linux-x64.tar.gz
+DOTNET_FILE=dotnet-sdk-9.0.306-linux-x64.tar.gz
export DOTNET_ROOT=$(pwd)/.dotnet
mkdir -p "$DOTNET_ROOT" && tar zxf "$DOTNET_FILE" -C "$DOTNET_ROOT"
@@ -162,11 +168,11 @@ To learn how to use the .NET CLI, see [.NET CLI overview](../tools/index.md).
[!INCLUDE [verify-download-intro](includes/verify-download-intro.md)]
-Use the `sha512sum` command to print the checksum of the file you've downloaded. For example, the following command reports the checksum of the _dotnet-sdk-8.0.100-linux-x64.tar.gz_ file:
+Use the `sha512sum` command to print the checksum of the file you've downloaded. For example, the following command reports the checksum of the _dotnet-sdk-9.0.306-linux-x64.tar.gz_ file:
```bash
-$ sha512sum dotnet-sdk-8.0.100-linux-x64.tar.gz
-13905ea20191e70baeba50b0e9bbe5f752a7c34587878ee104744f9fb453bfe439994d38969722bdae7f60ee047d75dda8636f3ab62659450e9cd4024f38b2a5 dotnet-sdk-8.0.100-linux-x64.tar.gz
+$ sha512sum dotnet-sdk-9.0.306-linux-x64.tar.gz
+bbb6bdc3c8048e7cc189759b406257839e7d4bd6b8b1ba4bcdaeea8f92340e6855231043dd73f902130ca5357af72b810bb51a4da4d1315a2927ff85f831f1d5 dotnet-sdk-9.0.306-linux-x64.tar.gz
```
Compare the checksum with the value provided by the download site.
@@ -175,15 +181,15 @@ Compare the checksum with the value provided by the download site.
The .NET release notes contain a link to a checksum file you can use to validate your downloaded file. The following steps describe how to download the checksum file and validate a .NET install binary:
-01. The release notes page for .NET 8 on GitHub at contains a section named **Releases**. The table in that section links to the downloads and checksum files for each .NET 8 release:
+01. The release notes page for .NET 9 on GitHub at contains a section named **Releases**. The table in that section links to the downloads and checksum files for each .NET 9 release. The following image shows the .NET 8 release table as a reference:
:::image type="content" source="media/install-sdk/release-notes-root.png" alt-text="The github release notes version table for .NET":::
01. Select the link for the version of .NET that you downloaded.
- The previous section used .NET SDK 8.0.100, which is in the .NET 8.0.0 release.
+ The previous section used .NET SDK 9.0.306, which is in the .NET 9.0.10 release.
-01. In the release page, you can see the .NET Runtime and .NET SDK version, and a link to the checksum file:
+01. In the release page, you can see the .NET Runtime and .NET SDK version, and a link to the checksum file. The following image shows the .NET 8 release table as a reference:
:::image type="content" source="media/install-sdk/release-notes-version.png" alt-text="The download table with checksums for .NET":::
@@ -196,7 +202,7 @@ The .NET release notes contain a link to a checksum file you can use to validate
Replace the link in the following command with the link you copied.
```bash
- curl -O https://builds.dotnet.microsoft.com/dotnet/checksums/8.0.0-sha.txt
+ curl -O https://builds.dotnet.microsoft.com/dotnet/checksums/9.0.10-sha.txt
```
01. With both the checksum file and the .NET release file downloaded to the same directory, use the `sha512sum -c {file} --ignore-missing` command to validate the downloaded file.
@@ -204,17 +210,17 @@ The .NET release notes contain a link to a checksum file you can use to validate
When validation passes, you see the file printed with the **OK** status:
```bash
- $ sha512sum -c 8.0.0-sha.txt --ignore-missing
- dotnet-sdk-8.0.100-linux-x64.tar.gz: OK
+ $ sha512sum -c 9.0.10-sha.txt --ignore-missing
+ dotnet-sdk-9.0.306-linux-x64.tar.gz: OK
```
If you see the file marked as **FAILED**, the file you downloaded isn't valid and shouldn't be used.
```bash
- $ sha512sum -c 8.0.0-sha.txt --ignore-missing
- dotnet-sdk-8.0.100-linux-x64.tar.gz: FAILED
+ $ sha512sum -c 9.0.10-sha.txt --ignore-missing
+ dotnet-sdk-9.0.306-linux-x64.tar.gz: FAILED
sha512sum: WARNING: 1 computed checksum did NOT match
- sha512sum: 8.0.0-sha.txt: no file was verified
+ sha512sum: 9.0.10-sha.txt: no file was verified
```
## Set environment variables system-wide
diff --git a/docs/core/install/linux-sles.md b/docs/core/install/linux-sles.md
index 949e5bfa3c5ff..482f6f1e2fa7a 100644
--- a/docs/core/install/linux-sles.md
+++ b/docs/core/install/linux-sles.md
@@ -3,7 +3,7 @@ title: Install .NET on SUSE Enterprise Linux
description: Learn about which versions of .NET SDK and .NET Runtime are supported, and how to install .NET on SUSE Enterprise Linux (SLES).
author: adegeo
ms.author: adegeo
-ms.date: 11/11/2024
+ms.date: 11/07/2025
ms.custom: linux-related-content
---
@@ -15,12 +15,13 @@ ms.custom: linux-related-content
## Supported distributions
-The following table is a list of currently supported .NET releases on SLES 15. These versions remain supported until either the version of [.NET reaches end-of-support](https://dotnet.microsoft.com/platform/support/policy/dotnet-core) or the version of SLES is no longer supported.
+The following table is a list of currently supported .NET releases on SLES. These versions remain supported until either the version of [.NET reaches end-of-support](https://dotnet.microsoft.com/platform/support/policy/dotnet-core) or the version of SLES is no longer supported.
-| SLES | .NET |
-|--------|----------|
-| 15.6 | 9.0, 8.0 |
-| 15.5 | 9.0, 8.0 |
+| SLES | .NET |
+|--------|-----------|
+| 16.0 | 10, 9, 8 |
+| 15.7 | 10, 9, 8 |
+| 15.6 | 10, 9, 8 |
[!INCLUDE [versions-not-supported](includes/versions-not-supported.md)]
@@ -32,6 +33,36 @@ The following table is a list of currently supported .NET releases on SLES 15. T
[!INCLUDE [package-manager uninstall notice](./includes/linux-uninstall-preview-info.md)]
+## SLES 16
+
+[!INCLUDE [linux-prep-intro-generic](includes/linux-prep-intro-generic.md)]
+
+```bash
+sudo rpm -Uvh https://packages.microsoft.com/config/sles/16/packages-microsoft-prod.rpm
+```
+
+# [.NET 10](#tab/dotnet10)
+
+[!INCLUDE [linux-release-wait](includes/linux-release-wait.md)]
+
+[!INCLUDE [linux-install-package-manager-x64-arm64](includes/linux-install-package-manager-x64-arm64.md)]
+
+[!INCLUDE [linux-zyp-install-100](includes/linux-install-100-zyp.md)]
+
+# [.NET 9](#tab/dotnet9)
+
+[!INCLUDE [linux-install-package-manager-x64-only](includes/linux-install-package-manager-x64-only.md)]
+
+[!INCLUDE [linux-zyp-install-90](includes/linux-install-90-zyp.md)]
+
+# [.NET 8](#tab/dotnet8)
+
+[!INCLUDE [linux-install-package-manager-x64-only](includes/linux-install-package-manager-x64-only.md)]
+
+[!INCLUDE [linux-zyp-install-80](includes/linux-install-80-zyp.md)]
+
+---
+
## SLES 15
[!INCLUDE [linux-prep-intro-generic](includes/linux-prep-intro-generic.md)]
@@ -46,8 +77,26 @@ Currently, the SLES 15 Microsoft repository setup package installs the *microsof
sudo ln -s /etc/yum.repos.d/microsoft-prod.repo /etc/zypp/repos.d/microsoft-prod.repo
```
+# [.NET 10](#tab/dotnet10)
+
+[!INCLUDE [linux-install-package-manager-x64-arm64](includes/linux-install-package-manager-x64-arm64.md)]
+
+[!INCLUDE [linux-zyp-install-100](includes/linux-install-100-zyp.md)]
+
+# [.NET 9](#tab/dotnet9)
+
+[!INCLUDE [linux-install-package-manager-x64-only](includes/linux-install-package-manager-x64-only.md)]
+
[!INCLUDE [linux-zyp-install-90](includes/linux-install-90-zyp.md)]
+# [.NET 8](#tab/dotnet8)
+
+[!INCLUDE [linux-install-package-manager-x64-only](includes/linux-install-package-manager-x64-only.md)]
+
+[!INCLUDE [linux-zyp-install-80](includes/linux-install-80-zyp.md)]
+
+---
+
## How to install other versions
[!INCLUDE [package-manager-switcher](./includes/package-manager-heading-hack-pkgname.md)]
@@ -56,6 +105,10 @@ sudo ln -s /etc/yum.repos.d/microsoft-prod.repo /etc/zypp/repos.d/microsoft-prod
This section provides information on common errors you may get while using the package manager to install .NET.
+### Unable to find package
+
+[!INCLUDE [linux-install-package-manager-unsupported-architectures](includes/linux-install-package-manager-unsupported-architectures.md)]
+
### Failed to fetch
[!INCLUDE [package-manager-failed-to-fetch-rpm](includes/package-manager-failed-to-fetch-rpm.md)]
diff --git a/docs/core/install/linux-snap-sdk.md b/docs/core/install/linux-snap-sdk.md
index 6d29da59ade18..6f641523d4a39 100644
--- a/docs/core/install/linux-snap-sdk.md
+++ b/docs/core/install/linux-snap-sdk.md
@@ -3,7 +3,7 @@ title: Install .NET SDK on Linux with Snap
description: Learn about how to install the .NET SDK snap package. Canonical maintains and supports .NET-related snap packages.
author: adegeo
ms.author: adegeo
-ms.date: 11/11/2024
+ms.date: 11/07/2025
ms.topic: install-set-up-deploy
ms.custom: linux-related-content, updateeachrelease
#customer intent: As a Linux user, I want to install .NET SDK through Snap.
@@ -58,10 +58,11 @@ The following table lists the package channels you can install:
| .NET version | Snap package channel |
|--------------|---------------------------------|
+| 10 (LTS) | *Not yet available |
| 9 (STS) | *Not yet available |
| 8 (LTS) | `8.0/stable`
`lts/stable` |
-| 7 (STS) | `7.0/stable` (out of support) |
-| 6 (LTS) | `6.0/stable` (out of support) |
+| 7 | `7.0/stable` (out of support) |
+| 6 | `6.0/stable` (out of support) |
| 5 | `5.0/stable` (out of support) |
| 3.1 | `3.1/stable` (out of support) |
| 2.1 | `2.1/stable` (out of support) |
diff --git a/docs/core/install/linux-ubuntu-decision.md b/docs/core/install/linux-ubuntu-decision.md
index 96d16b1b9b605..480202063ecdd 100644
--- a/docs/core/install/linux-ubuntu-decision.md
+++ b/docs/core/install/linux-ubuntu-decision.md
@@ -3,7 +3,7 @@ title: .NET and Ubuntu overview
description: Learn about the ways you can install .NET on Ubuntu, either from the built-in package feed, the .NET backports repository, or the Microsoft repository.
author: adegeo
ms.author: adegeo
-ms.date: 03/27/2025
+ms.date: 11/08/2025
ms.custom: updateeachrelease, linux-related-content
---
@@ -21,9 +21,10 @@ The following table is a list of currently supported .NET releases and the versi
| Ubuntu | Supported .NET versions | Available in
built-in Ubuntu feed | [Available in
.NET backports
Ubuntu feed](#register-the-ubuntu-net-backports-package-repository) | [Available in
Microsoft feed](#register-the-microsoft-package-repository) |
|--------------------------------------------------------------------|-------------------------|--------------------------------------|--------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------|
-| [25.04](linux-ubuntu-install.md?pivots=os-linux-ubuntu-2504) | 9.0, 8.0 | 9.0, 8.0 | None | None |
-| [24.04 (LTS)](linux-ubuntu-install.md?pivots=os-linux-ubuntu-2404) | 9.0, 8.0 | 8.0 | 9.0, 7.0, 6.0 | None |
-| [22.04 (LTS)](linux-ubuntu-install.md?pivots=os-linux-ubuntu-2204) | 9.0, 8.0 | 8.0, 7.0, 6.0 | 9.0 | 8.0, 7.0, 6.0, 3.1 |
+| [25.10](linux-ubuntu-install.md?pivots=os-linux-ubuntu-2510) | 10.0, 9.0, 8.0 | 9.0, 8.0 | None | None |
+| [25.04](linux-ubuntu-install.md?pivots=os-linux-ubuntu-2504) | 10.0, 9.0, 8.0 | 9.0, 8.0 | None | None |
+| [24.04 (LTS)](linux-ubuntu-install.md?pivots=os-linux-ubuntu-2404) | 10.0, 9.0, 8.0 | 8.0 | 9.0, 7.0, 6.0 | None |
+| [22.04 (LTS)](linux-ubuntu-install.md?pivots=os-linux-ubuntu-2204) | 10.0, 9.0, 8.0 | 8.0, 7.0, 6.0 | 9.0 | 8.0, 7.0, 6.0, 3.1 |
When an [Ubuntu version](https://wiki.ubuntu.com/Releases) reaches the end of its support period, .NET is no longer supported with that particular Ubuntu version.
@@ -68,6 +69,7 @@ Use the following sections to determine how you should install .NET:
If you don't need other Microsoft packages, such as `powershell`, `mdatp`, or `mssql`, install .NET through the Ubuntu feed. For more information, see the following pages:
+- [Install .NET on Ubuntu 25.10](linux-ubuntu-install.md?pivots=os-linux-ubuntu-2510).
- [Install .NET on Ubuntu 25.04](linux-ubuntu-install.md?pivots=os-linux-ubuntu-2504).
- [Install .NET on Ubuntu 24.04](linux-ubuntu-install.md?pivots=os-linux-ubuntu-2404).
- [Install .NET on Ubuntu 22.04](linux-ubuntu-install.md?pivots=os-linux-ubuntu-2204).
@@ -132,7 +134,7 @@ Starting with .NET 8 on Ubuntu 22.04, Canonical supports .NET for the IBM System
Install .NET through the built-in Ubuntu feed. For more information, see the following page:
-- [Install .NET 9 on Ubuntu 25.04](linux-ubuntu-install.md?pivots=os-linux-ubuntu-2504&tabs=dotnet9).
+- [Install .NET 10 on Ubuntu 25.10](linux-ubuntu-install.md?pivots=os-linux-ubuntu-2510&tabs=dotnet10).
## Register a package repository
@@ -238,16 +240,19 @@ The following sections describe how to manage .NET through the package manager.
### Install .NET
-Install .NET through the package manager with the `sudo apt install ` command. Replace `` with the name of the .NET package you want to install. For example, to install .NET SDK 9.0, use the command `sudo apt install dotnet-sdk-9.0`. The following table lists the currently supported .NET packages (which [might vary by your Ubuntu version](#supported-distributions)):
+Install .NET through the package manager with the `sudo apt install ` command. Replace `` with the name of the .NET package you want to install. For example, to install .NET SDK 10.0, use the command `sudo apt install dotnet-sdk-10.0`. The following table lists the currently supported .NET packages (which [might vary by your Ubuntu version](#supported-distributions)):
-|| Product | Type | Package |
-|---------|--------------|---------|--------------------------|
-| **9.0** | ASP.NET Core | Runtime | `aspnetcore-runtime-9.0` |
-| **9.0** | .NET | Runtime | `dotnet-runtime-9.0` |
-| **9.0** | .NET | SDK | `dotnet-sdk-9.0` |
-| **8.0** | ASP.NET Core | Runtime | `aspnetcore-runtime-8.0` |
-| **8.0** | .NET | Runtime | `dotnet-runtime-8.0` |
-| **8.0** | .NET | SDK | `dotnet-sdk-8.0` |
+|| Product | Type | Package |
+|---------|--------------|---------|----------------------------|
+| **10.0** | ASP.NET Core | Runtime | `aspnetcore-runtime-10.0` |
+| **10.0** | .NET | Runtime | `dotnet-runtime-10.0` |
+| **10.0** | .NET | SDK | `dotnet-sdk-10.0` |
+| **9.0** | ASP.NET Core | Runtime | `aspnetcore-runtime-9.0` |
+| **9.0** | .NET | Runtime | `dotnet-runtime-9.0` |
+| **9.0** | .NET | SDK | `dotnet-sdk-9.0` |
+| **8.0** | ASP.NET Core | Runtime | `aspnetcore-runtime-8.0` |
+| **8.0** | .NET | Runtime | `dotnet-runtime-8.0` |
+| **8.0** | .NET | SDK | `dotnet-sdk-8.0` |
> [!TIP]
> If you're not creating .NET apps, install the ASP.NET Core runtime as it includes the .NET runtime and also supports ASP.NET Core apps.
@@ -266,11 +271,11 @@ For more information, see [Uninstall .NET](remove-runtime-sdk-versions.md?pivots
### Update .NET
-If you installed .NET through a package manager, you can upgrade the package with the `apt upgrade` command. For example, the following commands upgrade the `dotnet-sdk-9.0` package with the latest version:
+If you installed .NET through a package manager, you can upgrade the package with the `apt upgrade` command. For example, the following commands upgrade the `dotnet-sdk-10.0` package with the latest version:
```bash
sudo apt update
-sudo apt upgrade dotnet-sdk-9.0
+sudo apt upgrade dotnet-sdk-10.0
```
> [!TIP]
@@ -298,7 +303,7 @@ This section provides information on common errors you might get while using APT
#### Unable to find package
-[!INCLUDE [linux-install-package-manager-x64-vs-arm](includes/linux-install-package-manager-x64-vs-arm.md)]
+[!INCLUDE [linux-install-package-manager-x64-vs-arm-ubuntu](includes/linux-install-package-manager-x64-vs-arm-ubuntu.md)]
#### Unable to locate \\ Some packages could not be installed
@@ -335,11 +340,11 @@ When you install with a package manager, these libraries are installed for you.
- libicu72 (for 23.10)
- libicu74 (for 24.04)
- libicu76 (for 25.04 or later)
-- liblttng-ust1 (for 22.x or later)
- libssl1.0.0 (for 16.x)
- libssl1.1 (for 18.x, 20.x)
- libssl3 (for 22.x or later)
- libstdc++6
+- tzdata
- zlib1g
[!INCLUDE [linux-ubuntu-deps-example](includes/linux-ubuntu-deps-example.md)]
diff --git a/docs/core/install/linux-ubuntu-install.md b/docs/core/install/linux-ubuntu-install.md
index 5278f4e413d93..6194e049231e7 100644
--- a/docs/core/install/linux-ubuntu-install.md
+++ b/docs/core/install/linux-ubuntu-install.md
@@ -3,8 +3,8 @@ title: Install .NET on Ubuntu
description: Demonstrates the various ways to install .NET SDK and .NET Runtime on Ubuntu. .NET is usually installed through APT.
author: adegeo
ms.author: adegeo
-ms.date: 12/13/2024
-ms.custom: linux-related-content
+ms.date: 11/07/2025
+ms.custom: updateeachrelease, linux-related-content
zone_pivot_groups: ubuntu-install-set-one
---
@@ -12,28 +12,36 @@ zone_pivot_groups: ubuntu-install-set-one
This article discusses how to install .NET on Ubuntu.
+[!INCLUDE [linux-release-wait](includes/linux-release-wait.md)]
+
[!INCLUDE [linux-intro-sdk-vs-runtime](includes/linux-intro-sdk-vs-runtime.md)]
[!INCLUDE [linux-install-package-manager-x64-vs-arm-ubuntu](includes/linux-install-package-manager-x64-vs-arm-ubuntu.md)]
-::: zone pivot="os-linux-ubuntu-2504"
+::: zone pivot="os-linux-ubuntu-2510"
-## Ubuntu 25.04
+## Ubuntu 25.10
[!INCLUDE [linux-ubuntu-package-feed-only](includes/linux-ubuntu-package-feed-only.md)]
-The following versions of .NET are supported or available for Ubuntu 25.04:
+The following versions of .NET are supported or available for Ubuntu 25.10:
| Supported .NET versions | Available in
built-in Ubuntu feed | [Available in
backports
Ubuntu feed](linux-ubuntu-decision.md#ubuntu-net-backports-package-repository) | [Available in
Microsoft feed](linux-ubuntu-decision.md#register-the-microsoft-package-repository) |
|-------------------------|--------------------------------------|-----------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|
-| 9.0, 8.0 | 9.0, 8.0 | None |None |
+| 10.0, 9.0, 8.0 | 9.0, 8.0 | None |None |
When an [Ubuntu version](https://wiki.ubuntu.com/Releases) falls out of support, .NET is no longer supported with that version.
+# [.NET 10](#tab/dotnet10)
+
+[!INCLUDE [linux-release-wait](includes/linux-release-wait.md)]
+
+[!INCLUDE [linux-apt-install-100](includes/linux-install-100-apt.md)]
+
# [.NET 9](#tab/dotnet9)
[!INCLUDE [linux-apt-install-90](includes/linux-install-90-apt.md)]
@@ -42,10 +50,6 @@ When an [Ubuntu version](https://wiki.ubuntu.com/Releases) falls out of support,
[!INCLUDE [linux-apt-install-80](includes/linux-install-80-apt.md)]
-# [.NET 6](#tab/dotnet6)
-
-Not available.
-
---
## Dependencies
@@ -55,10 +59,11 @@ When you install with a package manager, these libraries are installed for you.
- ca-certificates
- libc6
- libgcc-s1
+- libgssapi-krb5-2
- libicu76
-- liblttng-ust1
-- libssl3
+- libssl3t64
- libstdc++6
+- tzdata
- zlib1g
[!INCLUDE [linux-ubuntu-deps-example](includes/linux-ubuntu-deps-example.md)]
@@ -66,26 +71,30 @@ When you install with a package manager, these libraries are installed for you.
::: zone-end
-::: zone pivot="os-linux-ubuntu-2404"
+::: zone pivot="os-linux-ubuntu-2504"
-## Ubuntu 24.04
+## Ubuntu 25.04
[!INCLUDE [linux-ubuntu-package-feed-only](includes/linux-ubuntu-package-feed-only.md)]
-The following versions of .NET are supported or available for Ubuntu 24.04:
+The following versions of .NET are supported or available for Ubuntu 25.04:
| Supported .NET versions | Available in
built-in Ubuntu feed | [Available in
backports
Ubuntu feed](linux-ubuntu-decision.md#ubuntu-net-backports-package-repository) | [Available in
Microsoft feed](linux-ubuntu-decision.md#register-the-microsoft-package-repository) |
|-------------------------|--------------------------------------|-----------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|
-| 9.0, 8.0 | 8.0 | 9.0, 7.0, 6.0 |None |
+| 10.0, 9.0, 8.0 | 9.0, 8.0 | None |None |
When an [Ubuntu version](https://wiki.ubuntu.com/Releases) falls out of support, .NET is no longer supported with that version.
-# [.NET 9](#tab/dotnet9)
+# [.NET 10](#tab/dotnet10)
-[!INCLUDE [linux-ubuntu-register-backports](includes/linux-ubuntu-register-backports.md)]
+[!INCLUDE [linux-release-wait](includes/linux-release-wait.md)]
+
+[!INCLUDE [linux-apt-install-100](includes/linux-install-100-apt.md)]
+
+# [.NET 9](#tab/dotnet9)
[!INCLUDE [linux-apt-install-90](includes/linux-install-90-apt.md)]
@@ -93,15 +102,6 @@ When an [Ubuntu version](https://wiki.ubuntu.com/Releases) falls out of support,
[!INCLUDE [linux-apt-install-80](includes/linux-install-80-apt.md)]
-# [.NET 6](#tab/dotnet6)
-
-[!INCLUDE [linux-ubuntu-register-backports](includes/linux-ubuntu-register-backports.md)]
-
-> [!WARNING]
-> .NET 6 is no longer supported.
-
-[!INCLUDE [linux-apt-install-60](includes/linux-install-60-apt.md)]
-
---
## Dependencies
@@ -111,10 +111,11 @@ When you install with a package manager, these libraries are installed for you.
- ca-certificates
- libc6
- libgcc-s1
-- libicu74
-- liblttng-ust1
-- libssl3
+- libgssapi-krb5-2
+- libicu76
+- libssl3t64
- libstdc++6
+- tzdata
- zlib1g
[!INCLUDE [linux-ubuntu-deps-example](includes/linux-ubuntu-deps-example.md)]
@@ -122,25 +123,31 @@ When you install with a package manager, these libraries are installed for you.
::: zone-end
-::: zone pivot="os-linux-ubuntu-2204"
-
-## Ubuntu 22.04
+::: zone pivot="os-linux-ubuntu-2404"
-[!INCLUDE [linux-ubuntu-package-feed-both](includes/linux-ubuntu-package-feed-both.md)]
+## Ubuntu 24.04
-The following versions of .NET are supported or available for Ubuntu 22.04:
+[!INCLUDE [linux-ubuntu-package-feed-only](includes/linux-ubuntu-package-feed-only.md)]
-| Supported .NET versions | Available in
built-in Ubuntu feed | [Available in
.NET backports
Ubuntu feed](linux-ubuntu-decision.md#ubuntu-net-backports-package-repository) | [Available in
Microsoft feed](linux-ubuntu-decision.md#register-the-microsoft-package-repository) |
-|-------------------------|--------------------------------------|----------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|
-| 9.0, 8.0 | 8.0, 7.0, 6.0 | 9.0 | 8.0, 7.0, 6.0, 3.1 |
+The following versions of .NET are supported or available for Ubuntu 24.04:
-[!INCLUDE [linux-ubuntu-feed-sdk-note](includes/linux-ubuntu-feed-sdk-note.md)]
+| Supported .NET versions | Available in
built-in Ubuntu feed | [Available in
backports
Ubuntu feed](linux-ubuntu-decision.md#ubuntu-net-backports-package-repository) | [Available in
Microsoft feed](linux-ubuntu-decision.md#register-the-microsoft-package-repository) |
+|-------------------------|--------------------------------------|-----------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|
+| 10.0, 9.0, 8.0 | 8.0 | 9.0, 7.0, 6.0 |None |
When an [Ubuntu version](https://wiki.ubuntu.com/Releases) falls out of support, .NET is no longer supported with that version.
+# [.NET 10](#tab/dotnet10)
+
+[!INCLUDE [linux-release-wait](includes/linux-release-wait.md)]
+
+[!INCLUDE [linux-ubuntu-register-backports](includes/linux-ubuntu-register-backports.md)]
+
+[!INCLUDE [linux-apt-install-100](includes/linux-install-100-apt.md)]
+
# [.NET 9](#tab/dotnet9)
[!INCLUDE [linux-ubuntu-register-backports](includes/linux-ubuntu-register-backports.md)]
@@ -151,13 +158,6 @@ When an [Ubuntu version](https://wiki.ubuntu.com/Releases) falls out of support,
[!INCLUDE [linux-apt-install-80](includes/linux-install-80-apt.md)]
-# [.NET 6](#tab/dotnet6)
-
-> [!WARNING]
-> .NET 6 is no longer supported.
-
-[!INCLUDE [linux-apt-install-60](includes/linux-install-60-apt.md)]
-
---
## Dependencies
@@ -168,10 +168,10 @@ When you install with a package manager, these libraries are installed for you.
- libc6
- libgcc-s1
- libgssapi-krb5-2
-- libicu70
-- liblttng-ust1
-- libssl3
+- libicu74
+- libssl3t64
- libstdc++6
+- tzdata
- zlib1g
[!INCLUDE [linux-ubuntu-deps-example](includes/linux-ubuntu-deps-example.md)]
@@ -179,118 +179,46 @@ When you install with a package manager, these libraries are installed for you.
::: zone-end
-
-::: zone pivot="os-linux-ubuntu-2504,os-linux-ubuntu-2404,os-linux-ubuntu-2204"
-
-## Unsupported versions
-
-[!INCLUDE [versions-not-supported](includes/versions-not-supported.md)]
-
-## How to install other versions
-
-.NET package names are standardized across all Linux distributions. The following table lists the packages:
-
-[!INCLUDE [package-manager-switcher](./includes/package-manager-heading-hack-pkgname.md)]
-
-::: zone-end
-
-
-
-::: zone pivot="os-linux-ubuntu-other"
-
-## Manual install
-
-If your Ubuntu version isn't supported and the version of .NET you want to use wasn't available in a package repository, you most likely need to install .NET by manually extracting the binaries, by using the install script, or with Snap. For more information, see [Install .NET on Linux without using a package manager](linux-scripted-manual.md) and [Install .NET Runtime with Snap](linux-snap-runtime.md).
-
-
-## Ubuntu 23.10
+::: zone pivot="os-linux-ubuntu-2204"
-[!INCLUDE [linux-ubuntu-not-supported](includes/linux-ubuntu-not-supported.md)]
+## Ubuntu 22.04
[!INCLUDE [linux-ubuntu-package-feed-both](includes/linux-ubuntu-package-feed-both.md)]
-The following versions of .NET were supported or available for Ubuntu 23.10:
+The following versions of .NET are supported or available for Ubuntu 22.04:
| Supported .NET versions | Available in
built-in Ubuntu feed | [Available in
.NET backports
Ubuntu feed](linux-ubuntu-decision.md#ubuntu-net-backports-package-repository) | [Available in
Microsoft feed](linux-ubuntu-decision.md#register-the-microsoft-package-repository) |
|-------------------------|--------------------------------------|----------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|
-| 8.0, 6.0 | 8.0, 7.0, 6.0 | None | 8.0, 7.0, 6.0 |
+| 10.0, 9.0, 8.0 | 8.0, 7.0, 6.0 | 9.0 | 8.0, 7.0, 6.0, 3.1 |
[!INCLUDE [linux-ubuntu-feed-sdk-note](includes/linux-ubuntu-feed-sdk-note.md)]
When an [Ubuntu version](https://wiki.ubuntu.com/Releases) falls out of support, .NET is no longer supported with that version.
-# [.NET 9](#tab/dotnet9)
+# [.NET 10](#tab/dotnet10)
-.NET 9 isn't supported on Ubuntu 23.10.
+[!INCLUDE [linux-release-wait](includes/linux-release-wait.md)]
-# [.NET 8](#tab/dotnet8)
-
-[!INCLUDE [linux-apt-install-80](includes/linux-install-80-apt.md)]
-
-# [.NET 6](#tab/dotnet6)
-
-[!INCLUDE [linux-apt-install-60](includes/linux-install-60-apt.md)]
-
----
-
-### Dependencies
-
-When you install with a package manager, these libraries are installed for you. But, if you manually install .NET or you publish a self-contained app, you'll need to make sure these libraries are installed:
-
-- ca-certificates
-- libc6
-- libgcc-s1
-- libgssapi-krb5-2
-- libicu72
-- liblttng-ust1
-- libssl3
-- libstdc++6
-- zlib1g
-
-[!INCLUDE [linux-ubuntu-deps-example](includes/linux-ubuntu-deps-example.md)]
-
-
-
-## Ubuntu 23.04
-
-[!INCLUDE [linux-ubuntu-not-supported](includes/linux-ubuntu-not-supported.md)]
-
-[!INCLUDE [linux-ubuntu-package-feed-both](includes/linux-ubuntu-package-feed-both.md)]
+[!INCLUDE [linux-ubuntu-register-backports](includes/linux-ubuntu-register-backports.md)]
-The following versions of .NET were supported or available for Ubuntu 23.04:
-
-| Supported .NET versions | Available in
built-in Ubuntu feed | [Available in
.NET backports
Ubuntu feed](linux-ubuntu-decision.md#ubuntu-net-backports-package-repository) | [Available in
Microsoft feed](linux-ubuntu-decision.md#register-the-microsoft-package-repository) |
-|-------------------------|--------------------------------------|----------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|
-| 8.0, 6.0 | 7.0, 6.0 | None | 8.0, 7.0, 6.0 |
-
-[!INCLUDE [linux-ubuntu-feed-sdk-note](includes/linux-ubuntu-feed-sdk-note.md)]
+[!INCLUDE [linux-apt-install-100](includes/linux-install-100-apt.md)]
# [.NET 9](#tab/dotnet9)
-.NET 9 isn't supported on Ubuntu 23.04.
+[!INCLUDE [linux-ubuntu-register-backports](includes/linux-ubuntu-register-backports.md)]
-# [.NET 8](#tab/dotnet8)
+[!INCLUDE [linux-apt-install-90](includes/linux-install-90-apt.md)]
-[!INCLUDE [linux-ubuntu-80-ms](includes/linux-ubuntu-80-ms.md)]
+# [.NET 8](#tab/dotnet8)
[!INCLUDE [linux-apt-install-80](includes/linux-install-80-apt.md)]
-# [.NET 6](#tab/dotnet6)
-
-[!INCLUDE [linux-apt-install-60](includes/linux-install-60-apt.md)]
-
---
-### Dependencies
+## Dependencies
When you install with a package manager, these libraries are installed for you. But, if you manually install .NET or you publish a self-contained app, you'll need to make sure these libraries are installed:
@@ -298,119 +226,31 @@ When you install with a package manager, these libraries are installed for you.
- libc6
- libgcc-s1
- libgssapi-krb5-2
-- libicu72
-- liblttng-ust1
+- libicu70
- libssl3
- libstdc++6
+- tzdata
- zlib1g
[!INCLUDE [linux-ubuntu-deps-example](includes/linux-ubuntu-deps-example.md)]
-
-
-## Ubuntu 22.10
-
-[!INCLUDE [linux-ubuntu-not-supported](includes/linux-ubuntu-not-supported.md)]
-
-[!INCLUDE [linux-ubuntu-package-feed-both](includes/linux-ubuntu-package-feed-both.md)]
-
-The following versions of .NET are supported or available for Ubuntu 22.10:
-
-| Supported .NET versions | Available in
built-in Ubuntu feed | [Available in
.NET backports
Ubuntu feed](linux-ubuntu-decision.md#ubuntu-net-backports-package-repository) | [Available in
Microsoft feed](linux-ubuntu-decision.md#register-the-microsoft-package-repository) |
-|-------------------------|--------------------------------------|----------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|
-| 6.0 | 7.0, 6.0 | None | 7.0, 6.0, 3.1 |
-
-[!INCLUDE [linux-ubuntu-feed-sdk-note](includes/linux-ubuntu-feed-sdk-note.md)]
-
-# [.NET 9](#tab/dotnet9)
-
-.NET 9 isn't supported on Ubuntu 22.10.
-
-# [.NET 8](#tab/dotnet8)
-
-.NET 8 isn't supported on Ubuntu 22.10.
-
-# [.NET 6](#tab/dotnet6)
-
-[!INCLUDE [linux-apt-install-60](includes/linux-install-60-apt.md)]
-
----
-
-### Dependencies
-
-When you install with a package manager, these libraries are installed for you. But, if you manually install .NET or you publish a self-contained app, you'll need to make sure these libraries are installed:
-
-- ca-certificates
-- libc6
-- libgcc-s1
-- libgssapi-krb5-2
-- libicu71
-- liblttng-ust1
-- libssl3
-- libstdc++6
-- zlib1g
-
-[!INCLUDE [linux-ubuntu-deps-example](includes/linux-ubuntu-deps-example.md)]
+::: zone-end
-## Ubuntu 20.04
-
-[!INCLUDE [linux-ubuntu-package-feed-ms](includes/linux-ubuntu-package-feed-ms.md)]
-
-The following versions of .NET are supported or available for Ubuntu 20.04:
-
-| Supported .NET versions | Available in
built-in Ubuntu feed | [Available in
.NET backports
Ubuntu feed](linux-ubuntu-decision.md#ubuntu-net-backports-package-repository) | [Available in
Microsoft feed](linux-ubuntu-decision.md#register-the-microsoft-package-repository) |
-|-------------------------|--------------------------------------|----------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------|
-| 8.0 | None | None | 8.0, 7.0. 6.0, 5.0, 3.1, 2.1 |
-
-When an [Ubuntu version](https://wiki.ubuntu.com/Releases) falls out of support, .NET is no longer supported with that version.
-
-### Add the Microsoft package repository
-
-[!INCLUDE [linux-prep-intro-apt](includes/linux-prep-intro-apt.md)]
-
-```bash
-wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
-sudo dpkg -i packages-microsoft-prod.deb
-rm packages-microsoft-prod.deb
-```
-
-# [.NET 9](#tab/dotnet9)
-
-Because Ubuntu 20.04 reached end of life in April 2025, Microsoft doesn't support .NET 9 on Ubuntu 20.04.
-
-# [.NET 8](#tab/dotnet8)
-
-[!INCLUDE [linux-apt-install-80](includes/linux-install-80-apt.md)]
-
-# [.NET 6](#tab/dotnet6)
-
-> [!WARNING]
-> .NET 6 is no longer supported.
-
-[!INCLUDE [linux-apt-install-60](includes/linux-install-60-apt.md)]
+::: zone pivot="os-linux-ubuntu-2504,os-linux-ubuntu-2404,os-linux-ubuntu-2204"
----
+## Unsupported versions
-### Dependencies
+[!INCLUDE [versions-not-supported](includes/versions-not-supported.md)]
-When you install with a package manager, these libraries are installed for you. But, if you manually install .NET or you publish a self-contained app, you'll need to make sure these libraries are installed:
+## How to install other versions
-- ca-certificates
-- libc6
-- libgcc-s1
-- libgssapi-krb5-2
-- libicu66
-- libssl1.1
-- libstdc++6
-- zlib1g
+.NET package names are standardized across all Linux distributions. The following table lists the packages:
-[!INCLUDE [linux-ubuntu-deps-example](includes/linux-ubuntu-deps-example.md)]
+[!INCLUDE [package-manager-switcher](./includes/package-manager-heading-hack-pkgname.md)]
::: zone-end
diff --git a/docs/core/install/linux.md b/docs/core/install/linux.md
index 9bb70eafd3336..9ae4f0376c842 100644
--- a/docs/core/install/linux.md
+++ b/docs/core/install/linux.md
@@ -4,7 +4,7 @@ description: Learn about how .NET is available on Linux. .NET can be installed t
author: adegeo
ms.author: adegeo
ms.custom: updateeachrelease, linux-related-content
-ms.date: 11/04/2024
+ms.date: 11/08/2025
---
# Install .NET on Linux
@@ -19,14 +19,15 @@ This article describes how .NET is available on various Linux distributions. .NE
## Packages
-Packages are available for the following Linux distributions:
+Packages are published in the Microsoft package repository at and are available for the following Linux distributions:
- Azure Linux
- [Debian](linux-debian.md)
- [openSUSE Leap](linux-opensuse.md)
- [SUSE Enterprise Linux](linux-sles.md)
-Packages are published in the Microsoft package repository at . Distributions are selected per the policy defined at [dotnet/core #9556](https://github.com/dotnet/core/discussions/9556).
+> [!NOTE]
+> Distributions are selected per the policy defined at [dotnet/core \#9556](https://github.com/dotnet/core/discussions/9556).
The following Linux distributions publish their own .NET packages:
diff --git a/docs/core/install/macos.md b/docs/core/install/macos.md
index d317f4e5af168..fa369d06c79fa 100644
--- a/docs/core/install/macos.md
+++ b/docs/core/install/macos.md
@@ -4,8 +4,8 @@ description: Learn about which versions of .NET SDK and .NET Runtime are support
author: adegeo
ms.author: adegeo
ms.topic: install-set-up-deploy
-ms.date: 11/11/2024
-ms.custom: linux-related-content
+ms.date: 11/08/2025
+ms.custom: updateeachrelease, linux-related-content
#customer intent: As a user or developer, I want to know which versions of .NET are supported on macOS. I also need to know how to install .NET on macOS.
@@ -21,7 +21,7 @@ ms.custom: linux-related-content
This article teaches you about which versions of .NET are supported on macOS, how to install .NET, and what the difference is between the SDK and runtime.
-The latest version of .NET is 9.
+The latest version of .NET is 10.
> [!div class="button"]
> [Download .NET](https://dotnet.microsoft.com/download/dotnet)
@@ -30,11 +30,11 @@ The latest version of .NET is 9.
The following table lists the supported .NET releases, and which macOS they're supported on. These versions remain supported until either the version of [.NET reaches end-of-support](https://dotnet.microsoft.com/platform/support/policy/dotnet-core) or the version of macOS is no longer supported.
-| macOS Version | .NET |
-|------------------------|----------|
-| macOS 15 "Sequoia" | 9.0, 8.0 |
-| macOS 14 "Sonoma" | 9.0, 8.0 |
-| macOS 13 "Ventura" | 9.0, 8.0 |
+| macOS Version | .NET |
+|------------------------|----------------|
+| macOS 26 "Tahoe" | 10.0, 9.0, 8.0 |
+| macOS 15 "Sequoia" | 10.0, 9.0, 8.0 |
+| macOS 14 "Sonoma" | 9.0, 8.0 |
[!INCLUDE [versions-not-supported](includes/versions-not-supported.md)]
@@ -85,7 +85,7 @@ If you're unsure which method you should choose after reviewing the lists in the
Installer packages are available for macOS, an easy way of installing .NET.
01. Open a browser and navigate to .
-01. Select the link to the .NET version you want to install, such as **.NET 8.0**.
+01. Select the link to the .NET version you want to install, such as **.NET 10.0**.
:::image type="content" source="media/macos/download-page.png" alt-text="The .NET download website. Versions 6.0 through 9.0 are listed. A red box highlights those download links.":::
@@ -243,11 +243,11 @@ For more information about how enforced-notarization affects .NET (and your .NET
[!INCLUDE [verify-download-intro](includes/verify-download-intro.md)]
-Use the `shasum -a 512` command to print the checksum of the file you've downloaded. For example, the following command reports the checksum of the _dotnet-sdk-8.0.100-osx-x64.tar.gz_ file:
+Use the `shasum -a 512` command to print the checksum of the file you've downloaded. For example, the following command reports the checksum of the _dotnet-sdk-9.0.306-osx-x64.tar.gz_ file:
```bash
-$ shasum -a 512 dotnet-sdk-8.0.100-osx-x64.tar.gz
-13905ea20191e70baeba50b0e9bbe5f752a7c34587878ee104744f9fb453bfe439994d38969722bdae7f60ee047d75dda8636f3ab62659450e9cd4024f38b2a5 dotnet-sdk-8.0.100-osx-x64.tar.gz
+$ shasum -a 512 dotnet-sdk-9.0.306-osx-x64.tar.gz
+a9700f98e5aa4f70b2a08ddba2b1c6085106b0d17828bd719fdcef460b06c890b32d752fbff8e4659cd1ca4174b4b211b301fe682439ea9a24b6521ca5a64c69 dotnet-sdk-9.0.306-osx-x64.tar.gz
```
Compare the checksum with the value provided by the download site.
@@ -256,15 +256,15 @@ Compare the checksum with the value provided by the download site.
The .NET release notes contain a link to a checksum file you can use to validate your downloaded file. The following steps describe how to download the checksum file and validate a .NET install binary:
-01. The release notes page for .NET 8 on GitHub at contains a section named **Releases**. The table in that section links to the downloads and checksum files for each .NET 8 release:
+01. The release notes page for .NET 9 on GitHub at contains a section named **Releases**. The table in that section links to the downloads and checksum files for each .NET 9 release. The following image shows the .NET 8 release table as a reference:
:::image type="content" source="media/install-sdk/release-notes-root.png" alt-text="The github release notes version table for .NET":::
01. Select the link for the version of .NET that you downloaded.
- The previous section used .NET SDK 8.0.100, which is in the .NET 8.0.0 release.
+ The previous section used .NET SDK 9.0.306, which is in the .NET 9.0.10 release.
-01. In the release page, you can see the .NET Runtime and .NET SDK version, and a link to the checksum file:
+01. In the release page, you can see the .NET Runtime and .NET SDK version, and a link to the checksum file. The following image shows the .NET 8 release table as a reference:
:::image type="content" source="media/install-sdk/release-notes-version.png" alt-text="The download table with checksums for .NET":::
@@ -277,7 +277,7 @@ The .NET release notes contain a link to a checksum file you can use to validate
Replace the link in the following command with the link you copied.
```bash
- curl -O https://builds.dotnet.microsoft.com/dotnet/checksums/8.0.0-sha.txt
+ curl -O https://builds.dotnet.microsoft.com/dotnet/checksums/9.0.10-sha.txt
```
01. With both the checksum file and the .NET release file downloaded to the same directory, use the `shasum -a 512 -c {file}` command to validate the downloaded file.
@@ -285,15 +285,15 @@ The .NET release notes contain a link to a checksum file you can use to validate
When validation passes, you see the file printed with the **OK** status:
```bash
- $ shasum -a 512 -c 8.0.0-sha.txt
- dotnet-sdk-8.0.100-osx-x64.tar.gz: OK
+ $ shasum -a 512 -c 9.0.10-sha.txt
+ dotnet-sdk-9.0.306-osx-x64.tar.gz: OK
```
If you see the file marked as **FAILED**, the file you downloaded isn't valid and shouldn't be used.
```bash
- $ shasum -a 512 -c 8.0.0-sha.txt
- dotnet-sdk-8.0.100-osx-x64.tar.gz: FAILED
+ $ shasum -a 512 -c 9.0.10-sha.txt
+ dotnet-sdk-9.0.306-osx-x64.tar.gz: FAILED
shasum: WARNING: 1 computed checksum did NOT match
```
diff --git a/docs/core/install/remove-runtime-sdk-versions.md b/docs/core/install/remove-runtime-sdk-versions.md
index d4d63369b85e0..5e8471e763803 100644
--- a/docs/core/install/remove-runtime-sdk-versions.md
+++ b/docs/core/install/remove-runtime-sdk-versions.md
@@ -3,7 +3,7 @@ title: Remove the .NET runtime and SDK
description: This article describes how to uninstall .NET on Windows, macOS, and Linux. Uninstall .NET manually, through a package manager, or with the .NET Uninstall Tool.
author: adegeo
ms.author: adegeo
-ms.date: 11/11/2024
+ms.date: 11/08/2025
ms.custom: linux-related-content
zone_pivot_groups: operating-systems-set-one
---
diff --git a/docs/core/install/templates.md b/docs/core/install/templates.md
index 760a308410ee5..da8a5a3113748 100644
--- a/docs/core/install/templates.md
+++ b/docs/core/install/templates.md
@@ -3,7 +3,7 @@ title: Install and manage SDK templates
description: Learn how to install .NET templates on Windows, Linux, and macOS. Templates are installed from NuGet, a NuGet package file, or a file system directory.
author: adegeo
ms.author: adegeo
-ms.date: 05/14/2024
+ms.date: 11/08/2025
ms.custom: linux-related-content
zone_pivot_groups: operating-systems-set-one
no-loc: ['dotnet new', 'dotnet nuget add source']
@@ -186,6 +186,7 @@ The .NET templates are available on NuGet, and you can install them like any oth
| .NET 7.0 | [`Microsoft.DotNet.Common.ProjectTemplates.7.0`](https://www.nuget.org/packages/Microsoft.DotNet.Common.ProjectTemplates.7.0) |
| .NET 8.0 | [`Microsoft.DotNet.Common.ProjectTemplates.8.0`](https://www.nuget.org/packages/Microsoft.DotNet.Common.ProjectTemplates.8.0) |
| .NET 9.0 | [`Microsoft.DotNet.Common.ProjectTemplates.9.0`](https://www.nuget.org/packages/Microsoft.DotNet.Common.ProjectTemplates.9.0) |
+| .NET 10.0 | [`Microsoft.DotNet.Common.ProjectTemplates.10.0`](https://www.nuget.org/packages/Microsoft.DotNet.Common.ProjectTemplates.10.0) |
| ASP.NET Core 2.1 | [`Microsoft.DotNet.Web.ProjectTemplates.2.1`](https://www.nuget.org/packages/Microsoft.DotNet.Web.ProjectTemplates.2.1) |
| ASP.NET Core 2.2 | [`Microsoft.DotNet.Web.ProjectTemplates.2.2`](https://www.nuget.org/packages/Microsoft.DotNet.Web.ProjectTemplates.2.2) |
| ASP.NET Core 3.0 | [`Microsoft.DotNet.Web.ProjectTemplates.3.0`](https://www.nuget.org/packages/Microsoft.DotNet.Web.ProjectTemplates.3.0) |
@@ -195,6 +196,7 @@ The .NET templates are available on NuGet, and you can install them like any oth
| ASP.NET Core 7.0 | [`Microsoft.DotNet.Web.ProjectTemplates.7.0`](https://www.nuget.org/packages/Microsoft.DotNet.Web.ProjectTemplates.7.0) |
| ASP.NET Core 8.0 | [`Microsoft.DotNet.Web.ProjectTemplates.8.0`](https://www.nuget.org/packages/Microsoft.DotNet.Web.ProjectTemplates.8.0) |
| ASP.NET Core 9.0 | [`Microsoft.DotNet.Web.ProjectTemplates.8.0`](https://www.nuget.org/packages/Microsoft.DotNet.Web.ProjectTemplates.9.0) |
+| ASP.NET Core 10.0 | [`Microsoft.DotNet.Web.ProjectTemplates.10.0`](https://www.nuget.org/packages/Microsoft.DotNet.Web.ProjectTemplates.10.0) |
For example, the .NET 9 SDK includes templates for a console app targeting .NET 9. If you wanted to target .NET Core 3.1, you would need to install the 3.1 template package.
@@ -204,7 +206,7 @@ For example, the .NET 9 SDK includes templates for a console app targeting .NET
dotnet new console --framework netcoreapp3.1
```
- If you see an error message, you need to install the templates.
+ If you see an error message, install the templates in the next step.
01. Install the .NET Core 3.1 project templates.
diff --git a/docs/core/install/windows.md b/docs/core/install/windows.md
index bfd6287616ac5..197bbbc97469b 100644
--- a/docs/core/install/windows.md
+++ b/docs/core/install/windows.md
@@ -4,8 +4,9 @@ description: "Learn about which versions of .NET SDK and .NET Runtime are suppor
author: adegeo
ms.author: adegeo
ms.topic: install-set-up-deploy #Don't change
-ms.date: 11/11/2024
+ms.date: 11/08/2025
no-loc: ["Program Files", "dotnet"]
+ms.custom: linux-related-content
ai-usage: ai-assisted
#customer intent: As a developer or user, I want to decide the best way to install .NET on Windows.
---
@@ -33,12 +34,12 @@ By default, .NET is installed to the _Program Files\\dotnet_ directory on your c
There are three different runtimes for Windows, which enable different types of apps to run. The SDK includes all three runtimes, and an installer for a runtime might include an additional runtime. The following table describes which runtime is included with a particular .NET installer:
-| Installer | Includes .NET Runtime | Includes .NET Desktop Runtime | Includes ASP.NET Core Runtime |
-| ------------------------ | ----------------------------- | ----------------------------- | ----------------------------- |
-| **.NET Runtime** | Yes | No | No |
-| **.NET Desktop Runtime** | Yes | Yes | No |
-| **ASP.NET Core Runtime** | No | No | Yes |
-| **.NET SDK** | Yes | Yes | Yes |
+| Installer | Includes .NET Runtime | Includes .NET Desktop Runtime | Includes ASP.NET Core Runtime |
+|--------------------------|-----------------------|-------------------------------|-------------------------------|
+| **.NET Runtime** | Yes | No | No |
+| **.NET Desktop Runtime** | Yes | Yes | No |
+| **ASP.NET Core Runtime** | No | No | Yes |
+| **.NET SDK** | Yes | Yes | Yes |
To ensure that you can run all .NET apps on Windows, install both the ASP.NET Core Runtime and the .NET Desktop Runtime. The ASP.NET Core Runtime runs web-based apps, and the .NET Desktop Runtime runs desktop apps, such as a Windows Presentation Foundation (WPF) or Windows Forms app.
@@ -58,7 +59,7 @@ If you're unsure which method you should choose after reviewing the lists in the
Install the **C# Dev Kit** extension for Visual Studio Code to develop .NET apps. The extension can use an SDK that's already installed or install one for you.
-### Users and Developers
+### Users and developers
- [.NET Installer](#net-installer)
@@ -77,19 +78,19 @@ If you're unsure which method you should choose after reviewing the lists in the
The following table is a list of currently supported .NET releases and the versions of Windows they're supported on. These versions remain supported until either the version of [.NET reaches end-of-support](https://dotnet.microsoft.com/platform/support/policy/dotnet-core) or the version of [Windows reaches end-of-life](https://support.microsoft.com/help/13853/windows-lifecycle-fact-sheet).
> [!TIP]
-> As a reminder, this table applies to modern .NET (as opposed to .NET Framework). To install .NET Framework, see the [.NET Framework Installation guide](../../framework/install/index.md).
+> As a reminder, this table applies to modern .NET (as opposed to .NET Framework). To install .NET Framework, see the [.NET Framework installation guide](../../framework/install/index.md).
Windows 10 versions end-of-service dates are segmented by edition. Only **Home**, **Pro**, **Pro Education**, and **Pro for Workstations** editions are considered in the following table. Check the [Windows lifecycle fact sheet](https://support.microsoft.com/help/13853/windows-lifecycle-fact-sheet) for specific details.
-| Operating System | .NET 9 (Architectures) | .NET 8 (Architectures) |
-|---------------------------------------|------------------------|------------------------|
-| Windows 11 (24H2, 23H2, 22H2 Ent/Edu) | ✔️ x64, x86, Arm64 | ✔️ x64, x86, Arm64 |
-| Windows 10 (22H2+) | ✔️ x64, x86, Arm64 | ✔️ x64, x86, Arm64 |
-| Windows Server 2025
Windows Server 2022
Windows Server 2019
Windows Server, Version 1903 or later
Windows Server 2016
Windows Server 2012 R2
Windows Server 2012 | ✔️ x64, x86 | ✔️ x64, x86 |
-| Windows Server Core 2012 (and R2) | ✔️ x64, x86 | ✔️ x64, x86 |
-| Nano Server (2022, 2019) | ✔️ x64 | ✔️ x64 |
-| Windows 8.1 | ❌ | ❌ |
-| Windows 7 SP1 [ESU][esu] | ❌ | ❌ |
+| Operating System | .NET 10 (Architectures) | .NET 9 (Architectures) | .NET 8 (Architectures) |
+|---------------------------------------|-------------------------|------------------------|------------------------|
+| Windows 11 (24H2, 23H2, 22H2 Ent/Edu) | ✔️ x64, Arm64 | ✔️ x64, Arm64 | ✔️ x64, Arm64 |
+| Windows 10 (22H2) | ✔️ x64, Arm64 | ✔️ x64, Arm64 | ✔️ x64, Arm64 |
+| Windows Server 2025
Windows Server 2022
Windows Server 2019
Windows Server, Version 1903 or later
Windows Server 2016
Windows Server 2012 R2
Windows Server 2012 | ✔️ x64, x86 | ✔️ x64, x86 | ✔️ x64, x86 |
+| Windows Server Core 2012 (and R2) | ✔️ x64, x86 | ✔️ x64, x86 | ✔️ x64, x86 |
+| Nano Server (2025, 2022, 2019) | ✔️ x64 | ✔️ x64 | ✔️ x64 |
+| Windows 8.1 | ❌ | ❌ | ❌ |
+| Windows 7 SP1 [ESU][esu] | ❌ | ❌ | ❌ |
> [!TIP]
> A `+` symbol represents the minimum version.
@@ -134,7 +135,7 @@ Environment variables that add .NET to system path, such as the `PATH` variable,
Visual Studio installs its own copy of .NET separate from other copies of .NET. Different versions of Visual Studio support different versions of .NET. The latest version of Visual Studio always supports the latest version of .NET.
> [!div class="button"]
-> [Download Visual Studio Installer](https://www.visualstudio.com/downloads/?utm_medium=microsoft&utm_source=learn.microsoft.com&utm_campaign=button+cta&utm_content=download+vs2022)
+> [Download Visual Studio Installer](https://www.visualstudio.com/downloads/?utm_medium=microsoft&utm_source=learn.microsoft.com&utm_campaign=button+cta&utm_content=download+vs2026)
Visual Studio Installer installs and configures Visual Studio. Some Visual Studio workloads include .NET, such as **ASP.NET and web development** and **.NET Multi-platform App UI development**. Specific versions of .NET can be installed through the **Individual Components** tab.
@@ -145,12 +146,13 @@ The Visual Studio documentation provides instructions on how to:
:::image type="content" source="media/windows/vs-workloads.png" alt-text="A screenshot that shows Visual Studio Installer with the .NET Desktop workload highlighted with a red box.":::
-### .NET Versions and Visual Studio
+### .NET versions and Visual Studio
If you're using Visual Studio to develop .NET apps, the following table describes the minimum required version of Visual Studio based on the target .NET SDK version.
| .NET SDK version | Visual Studio version |
| --------------------- | ------------------------------------------- |
+| 10 | Visual Studio 2026 version 18.0 or higher. |
| 9 | Visual Studio 2022 version 17.12 or higher. |
| 8 | Visual Studio 2022 version 17.8 or higher. |
| 7 | Visual Studio 2022 version 17.4 or higher. |
@@ -186,7 +188,7 @@ Additionally, the [C# Dev Kit](https://marketplace.visualstudio.com/items?itemNa
For instructions on installing .NET through Visual Studio Code, see [Getting Started with C# in VS Code](https://code.visualstudio.com/docs/csharp/get-started).
-## .NET Installer
+## .NET installer
The [download page](https://dotnet.microsoft.com/download/dotnet) for .NET provides Windows Installer executables.
@@ -194,7 +196,7 @@ The [download page](https://dotnet.microsoft.com/download/dotnet) for .NET provi
> If you're installing .NET system-wide, install with administrative privileges.
1. Open a web browser and navigate to .
-1. Select the version of .NET you want to download, such as 9.0.
+1. Select the version of .NET you want to download, such as 10.0.
1. Find the SDK or Runtime box that contains the links for downloading .NET.
1. Under the **Installers** column, find the **Windows** row and select the link for your CPU architecture. If you're unsure, select **x64** as it's the most common.
@@ -257,6 +259,7 @@ The installer executables always install new content before removing the previou
| .NET version | Registry key | Name | Type | Value |
| -------------- | :--------- | :---------- | :---------- | :---------- |
| All | HKLM\SOFTWARE\Microsoft\\.NET | RemovePreviousVersion | REG_SZ | `always`, `never`, or `nextSession` |
+| .NET 10 | HKLM\SOFTWARE\Microsoft\\.NET\10.0 | RemovePreviousVersion | REG_SZ | `always`, `never`, or `nextSession` |
| .NET 9 | HKLM\SOFTWARE\Microsoft\\.NET\9.0 | RemovePreviousVersion | REG_SZ | `always`, `never`, or `nextSession` |
| .NET 8 | HKLM\SOFTWARE\Microsoft\\.NET\8.0 | RemovePreviousVersion | REG_SZ | `always`, `never`, or `nextSession` |
@@ -268,7 +271,7 @@ The installer executables always install new content before removing the previou
When the removal is deferred, the installer writes a command to the [RunOnce](/windows/win32/setupapi/run-and-runonce-registry-keys) registry key to uninstall the previous version. The command only executes if a user in the Administrators group logs on to the machine.
> [!NOTE]
-> This feature is only available in .NET 8 (8.0.11), 9, and later versions of .NET. It only applies to the standalone installer executables and impacts distributions like WinGet that use them.
+> This feature is only available starting with .NET 8 (8.0.11). It only applies to the standalone installer executables and impacts distributions like WinGet that use them.
## Install with Windows Package Manager (WinGet)
@@ -279,6 +282,10 @@ You can install and manage .NET through the Windows Package Manager service, usi
The .NET WinGet packages are:
+- `Microsoft.DotNet.Runtime.10`—.NET Runtime 10.0
+- `Microsoft.DotNet.AspNetCore.10`—ASP.NET Core Runtime 10.0
+- `Microsoft.DotNet.DesktopRuntime.10`—.NET Desktop Runtime 10.0
+- `Microsoft.DotNet.SDK.10`—.NET SDK 10.0
- `Microsoft.DotNet.Runtime.9`—.NET Runtime 9.0
- `Microsoft.DotNet.AspNetCore.9`—ASP.NET Core Runtime 9.0
- `Microsoft.DotNet.DesktopRuntime.9`—.NET Desktop Runtime 9.0
@@ -297,7 +304,7 @@ If you install the SDK, you don't need to install the corresponding runtime.
01. Run the `winget install` command and pass the name of the SDK package:
```cmd
- winget install Microsoft.DotNet.SDK.9
+ winget install Microsoft.DotNet.SDK.10
```
To learn how to use the .NET CLI, see [.NET CLI overview](../tools/index.md).
@@ -311,8 +318,8 @@ There are different runtimes you can install. Refer to the [Choose the correct r
01. Run the `winget install` command and pass the name of the SDK package:
```cmd
- winget install Microsoft.DotNet.DesktopRuntime.9
- winget install Microsoft.DotNet.AspNetCore.9
+ winget install Microsoft.DotNet.DesktopRuntime.10
+ winget install Microsoft.DotNet.AspNetCore.10
```
To learn how to use the .NET CLI, see [.NET CLI overview](../tools/index.md).
@@ -328,14 +335,15 @@ winget search Microsoft.DotNet.SDK
The search results are printed in a table with each package identifier.
```output
-Name Id Version Source
-----------------------------------------------------------------------------------------------
-Microsoft .NET SDK 9.0 Microsoft.DotNet.SDK.9 9.0.100 winget
-Microsoft .NET SDK 8.0 Microsoft.DotNet.SDK.8 8.0.300 winget
-Microsoft .NET SDK 7.0 Microsoft.DotNet.SDK.7 7.0.409 winget
-Microsoft .NET SDK 6.0 Microsoft.DotNet.SDK.6 6.0.422 winget
-Microsoft .NET SDK 5.0 Microsoft.DotNet.SDK.5 5.0.408 winget
-Microsoft .NET SDK 3.1 Microsoft.DotNet.SDK.3_1 3.1.426 winget
+Name Id Version Source
+--------------------------------------------------------------------------------------------
+Microsoft .NET SDK 3.1 Microsoft.DotNet.SDK.3_1 3.1.426 winget
+Microsoft .NET SDK 5.0 Microsoft.DotNet.SDK.5 5.0.408 winget
+Microsoft .NET SDK 6.0 Microsoft.DotNet.SDK.6 6.0.428 winget
+Microsoft .NET SDK 7.0 Microsoft.DotNet.SDK.7 7.0.410 winget
+Microsoft .NET SDK 8.0 Microsoft.DotNet.SDK.8 8.0.415 winget
+Microsoft .NET SDK 9.0 Microsoft.DotNet.SDK.9 9.0.306 winget
+Microsoft .NET SDK 10.0 Microsoft.DotNet.SDK.10 10.0.100 winget
```
### Install preview versions
@@ -350,7 +358,7 @@ winget install Microsoft.DotNet.DesktopRuntime.Preview
Installing .NET through the `dotnet-install` PowerShell script is recommended for continuous integration and nonadmin installs. If you're installing .NET for normal use on your system, use either the [.NET Installer](#net-installer) or [Windows Package Manager](#install-with-windows-package-manager-winget) installation methods.
-The script defaults to installing the latest [long term support (LTS)](https://dotnet.microsoft.com/platform/support/policy/dotnet-core) version, which is .NET 8. You can choose a specific release by specifying the `-Channel` switch. Include the `-Runtime` switch to install a runtime. Otherwise, the script installs the SDK. The script is available at and the source code is hosted on [GitHub](https://github.com/dotnet/install-scripts).
+The script defaults to installing the latest [long term support (LTS)](https://dotnet.microsoft.com/platform/support/policy/dotnet-core) version, which is .NET 10. You can choose a specific release by specifying the `-Channel` switch. Include the `-Runtime` switch to install a runtime. Otherwise, the script installs the SDK. The script is available at and the source code is hosted on [GitHub](https://github.com/dotnet/install-scripts).
> [!div class="button"]
> [Download the script](https://dot.net/v1/dotnet-install.ps1)
@@ -393,7 +401,57 @@ To learn how to use the .NET CLI, see [.NET CLI overview](../tools/index.md).
[!INCLUDE [verify-download-intro](includes/verify-download-intro.md)]
-[!INCLUDE [verify-download-windows](includes/verify-download-windows.md)]
+You can use **PowerShell** or **Command Prompt** to validate the checksum of the file you've downloaded. For example, the following command reports the checksum of the _dotnet-sdk-9.0.306-win-x64.exe_ file:
+
+```cmd
+> certutil -hashfile dotnet-sdk-9.0.306-win-x64.exe SHA512
+SHA512 hash of dotnet-sdk-9.0.306-win-x64.exe:
+f048ddf80c0aa88e713070e66a0009435ad9a5f444adbde6edf2b17f8da562d494a5c37cbabaf63ee3125fe1d2da735a397de9a38dd6ca638b8dc085adc01d4f
+CertUtil: -hashfile command completed successfully.
+```
+
+```powershell
+> (Get-FileHash .\dotnet-sdk-9.0.306-win-x64.exe -Algorithm SHA512).Hash
+f048ddf80c0aa88e713070e66a0009435ad9a5f444adbde6edf2b17f8da562d494a5c37cbabaf63ee3125fe1d2da735a397de9a38dd6ca638b8dc085adc01d4f
+```
+
+Compare the checksum with the value provided by the download site.
+
+### Use PowerShell and a checksum file to validate
+
+The .NET release notes contain a link to a checksum file you can use to validate your downloaded file. The following steps describe how to download the checksum file and validate a .NET install binary:
+
+01. The release notes page for .NET 9 on GitHub at contains a section named **Releases**. The table in that section links to the downloads and checksum files for each .NET 9 release. The following image shows the .NET 8 release table as a reference:
+
+ :::image type="content" source="media/install-sdk/release-notes-root.png" alt-text="The github release notes version table for .NET":::
+
+01. Select the link for the version of .NET that you downloaded. The previous section used .NET SDK 9.0.306, which is in the .NET 9.0.10 release.
+
+ > [!TIP]
+ > If you're not sure which .NET release contains your checksum file, explore the links until you find it.
+
+01. In the release page, you can see the .NET Runtime and .NET SDK version, and a link to the checksum file. The following image shows the .NET 8 release table as a reference:
+
+ :::image type="content" source="media/install-sdk/release-notes-version.png" alt-text="The download table with checksums for .NET":::
+
+01. Copy the link to the checksum file.
+
+01. Use the following script, but replace the link to download the appropriate checksum file:
+
+ ```powershell
+ Invoke-WebRequest https://builds.dotnet.microsoft.com/dotnet/checksums/9.0.10-sha.txt -OutFile 9.0.10-sha.txt
+ ```
+
+01. With both the checksum file and the .NET release file downloaded to the same directory, search the checksum file for the checksum of the .NET download:
+
+ When validation passes, you see **True** printed:
+
+ ```powershell
+ > (Get-Content .\9.0.10-sha.txt | Select-String "dotnet-sdk-9.0.306-win-x64.exe").Line -like (Get-FileHash .\dotnet-sdk-9.0.306-win-x64.exe -Algorithm SHA512).Hash + "*"
+ True
+ ```
+
+ If you see **False** printed, the file you downloaded isn't valid and shouldn't be used.
## Troubleshooting
diff --git a/docs/core/porting/versioning-sdk-msbuild-vs.md b/docs/core/porting/versioning-sdk-msbuild-vs.md
index dbd6a37cb8c38..1ae0c7687ed82 100644
--- a/docs/core/porting/versioning-sdk-msbuild-vs.md
+++ b/docs/core/porting/versioning-sdk-msbuild-vs.md
@@ -2,7 +2,6 @@
title: .NET SDK, MSBuild, and Visual Studio versioning
description: Learn about the versioning relationship between the .NET SDK and MSBuild/VS.
author: StephenBonikowsky
-ms.author: stebon
ms.custom: updateeachrelease
ms.date: 10/23/2025
---
diff --git a/docs/core/project-sdk/msbuild-props-desktop.md b/docs/core/project-sdk/msbuild-props-desktop.md
index 19df71fe63a4e..a36297b161267 100644
--- a/docs/core/project-sdk/msbuild-props-desktop.md
+++ b/docs/core/project-sdk/msbuild-props-desktop.md
@@ -20,7 +20,7 @@ This page is a reference for the MSBuild properties and items that you use to co
To use WinForms or WPF, specify the following settings in the project file of your WinForms or WPF project:
- Target the .NET SDK `Microsoft.NET.Sdk`. For more information, see [Project files](overview.md#project-files).
-- Set [`TargetFramework`](msbuild-props.md#targetframework) to a [Windows-specific target framework moniker](../../standard/frameworks.md#net-5-os-specific-tfms), such as `net8.0-windows`.
+- Set [`TargetFramework`](msbuild-props.md#targetframework) to a [Windows-specific target framework moniker](../../standard/frameworks.md#os-specific-tfms), such as `net8.0-windows`.
- Add a UI framework property (or both, if necessary):
- Set [`UseWPF`](#usewpf) to `true` to import and use WPF.
- Set [`UseWindowsForms`](#usewindowsforms) to `true` to import and use WinForms.
diff --git a/docs/core/project-sdk/msbuild-props.md b/docs/core/project-sdk/msbuild-props.md
index dd8f1a3198b2d..1a049f6c169a6 100644
--- a/docs/core/project-sdk/msbuild-props.md
+++ b/docs/core/project-sdk/msbuild-props.md
@@ -1,7 +1,7 @@
---
title: MSBuild properties for Microsoft.NET.Sdk
description: Reference for the MSBuild properties and items that are understood by the .NET SDK.
-ms.date: 09/30/2025
+ms.date: 11/07/2025
ms.topic: reference
ms.custom: updateeachrelease
---
@@ -169,8 +169,7 @@ The `PackRelease` property is similar to the [PublishRelease](#publishrelease) p
> [!NOTE]
>
-> - Starting in the .NET 8 SDK, `PackRelease` defaults to `true`. For more information, see ['dotnet pack' uses Release configuration](../compatibility/sdk/8.0/dotnet-pack-config.md).
-> - .NET 7 SDK only: To use `PackRelease` in a project that's part of a Visual Studio solution, you must set the environment variable `DOTNET_CLI_ENABLE_PACK_RELEASE_FOR_SOLUTIONS` to `true` (or any other value). For solutions that have many projects, setting this variable increases the time required to pack.
+> Starting in the .NET 8 SDK, `PackRelease` defaults to `true`. For more information, see ['dotnet pack' uses Release configuration](../compatibility/sdk/8.0/dotnet-pack-config.md).
## Package validation properties
@@ -345,7 +344,7 @@ The `PackageValidationReferencePath` item specifies the directory path where the
```xml
-
+
```
@@ -541,8 +540,7 @@ The `PublishRelease` property informs `dotnet publish` to use the `Release` conf
> [!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.
-> - .NET 7 SDK only: To use `PublishRelease` in a project that's part of a Visual Studio solution, you must set the environment variable `DOTNET_CLI_ENABLE_PUBLISH_RELEASE_FOR_SOLUTIONS` to `true` (or any other value). When publishing a solution with this variable enabled, the executable project's `PublishRelease` value takes precedence and flows the new default configuration to any other projects in the solution. If a solution contains multiple executable or top-level projects with differing values of `PublishRelease`, the solution won't successfully publish. For solutions that have many projects, use of this setting increases the time required to publish.
+> - This property does not affect the behavior of `dotnet build /t:Publish`, and it changes the configuration only when publishing via the .NET CLI.
### PublishSelfContained
@@ -734,7 +732,7 @@ Additionally, if you specify an operating system-specific target framework in th
- Platform with version (`IOS15_1`)
- Platform with version minimum bound (`IOS15_1_OR_GREATER`)
-For more information on operating system-specific target framework monikers, see [OS-specific TFMs](../../standard/frameworks.md#net-5-os-specific-tfms).
+For more information on operating system-specific target framework monikers, see [OS-specific TFMs](../../standard/frameworks.md#os-specific-tfms).
Finally, if your target framework implies support for older target frameworks, preprocessor symbols for those older frameworks are emitted. For example, `net6.0` **implies** support for `net5.0` and so on all the way back to `.netcoreapp1.0`. So for each of these target frameworks, the *Framework with version minimum bound* symbol will be defined.
@@ -977,6 +975,10 @@ The following table shows the values you can specify.
| `latest-` | The latest code analyzers that have been released are used. The `` value determines which rules are enabled. |
| `preview` | The latest code analyzers are used, even if they are in preview. |
| `preview-` | The latest code analyzers are used, even if they are in preview. The `` value determines which rules are enabled. |
+| `10.0` | The set of rules that was available for the .NET 10 release is used, even if newer rules are available. |
+| `10.0-` | The set of rules that was available for the .NET 10 release is used, even if newer rules are available. The `` value determines which rules are enabled. |
+| `10` | The set of rules that was available for the .NET 10 release is used, even if newer rules are available. |
+| `10-` | The set of rules that was available for the .NET 10 release is used, even if newer rules are available. The `` value determines which rules are enabled. |
| `9.0` | The set of rules that was available for the .NET 9 release is used, even if newer rules are available. |
| `9.0-` | The set of rules that was available for the .NET 9 release is used, even if newer rules are available. The `` value determines which rules are enabled. |
| `9` | The set of rules that was available for the .NET 9 release is used, even if newer rules are available. |
@@ -985,10 +987,6 @@ The following table shows the values you can specify.
| `8.0-` | The set of rules that was available for the .NET 8 release is used, even if newer rules are available. The `` value determines which rules are enabled. |
| `8` | The set of rules that was available for the .NET 8 release is used, even if newer rules are available. |
| `8-` | The set of rules that was available for the .NET 8 release is used, even if newer rules are available. The `` value determines which rules are enabled. |
-| `7.0` | The set of rules that was available for the .NET 7 release is used, even if newer rules are available. |
-| `7.0-` | The set of rules that was available for the .NET 7 release is used, even if newer rules are available. The `` value determines which rules are enabled. |
-| `7` | The set of rules that was available for the .NET 7 release is used, even if newer rules are available. |
-| `7-` | The set of rules that was available for the .NET 7 release is used, even if newer rules are available. The `` value determines which rules are enabled. |
> [!NOTE]
>
@@ -1347,7 +1345,7 @@ Example *Directory.Packages.props* file:
...
-
+
```
diff --git a/docs/core/tools/dotnet-new-sdk-templates.md b/docs/core/tools/dotnet-new-sdk-templates.md
index 3a112f98f10bd..32bd48a574161 100644
--- a/docs/core/tools/dotnet-new-sdk-templates.md
+++ b/docs/core/tools/dotnet-new-sdk-templates.md
@@ -3,7 +3,7 @@ title: .NET default templates for 'dotnet new'
description: Learn about 'dotnet new' templates that ship with the .NET SDK.
ms.custom: updateeachrelease
no-loc: [Blazor, WebAssembly]
-ms.date: 08/29/2025
+ms.date: 11/07/2025
---
# Default templates for `dotnet new`
@@ -25,8 +25,8 @@ The following table shows the templates that come preinstalled with the .NET SDK
| Templates | Short name | Language | Tags | Introduced |
|-----------------------------|-----------------------------------|----------|-------------------------|------------|
-| ASP.NET Core API | [`webapiaot`](#webapiaot) | [C#] | Web/Web API/API/Service | 8.0 |
-| ASP.NET Core API controller | [`apicontroller`](#apicontroller) | [C#] | Web/ASP.NET | 8.0 |
+| ASP.NET Core API | [`webapiaot`](#webapiaot) | [C#] | Web/Web API/API/Service | 8.0 |
+| ASP.NET Core API controller | [`apicontroller`](#apicontroller) | [C#] | Web/ASP.NET | 8.0 |
| ASP.NET Core Empty | [`web`](#web) | [C#], F# | Web/Empty | 1.0 |
| ASP.NET Core Web API | [`webapi`](#webapi) | [C#], F# | Web/Web API/API/Service/WebAPI | 1.0 |
| ASP.NET Core Web App (Model-View-Controller) | [`mvc`](#web-options) | [C#], F# | Web/MVC | 1.0 |
@@ -205,9 +205,9 @@ Creates a *Directory.Build.targets* file for customizing MSBuild targets and tas
| SDK version | Default value |
|-------------|---------------|
+ | 10.0 | `net10.0` |
| 9.0 | `net9.0` |
| 8.0 | `net8.0` |
- | 7.0 | `net7.0` |
The ability to create a project for an earlier TFM depends on having that version of the SDK installed. For example, if you have only the .NET 9 SDK installed, then the only value available for `--framework` is `net9.0`. If you install, for example, the .NET 8 SDK, the value `net8.0` becomes available for `--framework`. So by specifying `--framework net8.0` you can target .NET 8 even while running `dotnet new` in the .NET 9 SDK.
@@ -289,9 +289,9 @@ The ability to create a project for an earlier TFM depends on having that versio
| SDK version | Default value |
|-------------|---------------|
+ | 10.0 | `net10.0` |
| 9.0 | `net9.0` |
| 8.0 | `net8.0` |
- | 7.0 | `net7.0` |
The ability to create a project for an earlier TFM depends on having that version of the SDK installed. For example, if you have only the .NET 9 SDK installed, then the only value available for `--framework` is `net9.0`. If you install, for example, the .NET 8 SDK, the value `net8.0` becomes available for `--framework`. So by specifying `--framework net8.0` you can target .NET 8 even while running `dotnet new` in the .NET 9 SDK.
@@ -315,9 +315,9 @@ The ability to create a project for an earlier TFM depends on having that versio
| SDK version | Default value |
|-------------|---------------|
+ | 10.0 | `net10.0` |
| 9.0 | `net9.0` |
| 8.0 | `net8.0` |
- | 7.0 | `net7.0` |
The ability to create a project for an earlier TFM depends on having that version of the SDK installed. For example, if you have only the .NET 9 SDK installed, then the only value available for `--framework` is `net9.0`. If you install, for example, the .NET 8 SDK, the value `net8.0` becomes available for `--framework`. So by specifying `--framework net8.0` you can target .NET 8 even while running `dotnet new` in the .NET 9 SDK.
@@ -419,9 +419,9 @@ The ability to create a project for an earlier TFM depends on having that versio
| SDK version | Default value |
|-------------|---------------|
+ | 10.0 | `net10.0` |
| 9.0 | `net9.0` |
| 8.0 | `net8.0` |
- | 7.0 | `net7.0` |
To create a project that targets a framework earlier than the SDK that you're using, see [`--framework` for `console` projects](#template-options) earlier in this article.
@@ -520,9 +520,9 @@ The ability to create a project for an earlier TFM depends on having that versio
| SDK version | Default value |
|-------------|---------------|
+ | 10.0 | `net10.0` |
| 9.0 | `net9.0` |
| 8.0 | `net8.0` |
- | 7.0 | `net7.0` |
To create a project that targets a framework earlier than the SDK that you're using, see [`--framework` for `console` projects](#template-options) earlier in this article.
@@ -580,6 +580,7 @@ Creates a web API project with AOT publish enabled. For more information, see [N
| SDK version | Default value |
|-------------|---------------|
+ | 10.0 | `net10.0` |
| 9.0 | `net9.0` |
| 8.0 | `net8.0` |
@@ -664,9 +665,9 @@ Creates a web API project with AOT publish enabled. For more information, see [N
| SDK version | Default value |
|-------------|---------------|
+ | 10.0 | `net10.0` |
| 9.0 | `net9.0` |
| 8.0 | `net8.0` |
- | 7.0 | `net7.0` |
To create a project that targets a framework earlier than the SDK that you're using, see [`--framework` for `console` projects](#template-options) earlier in this article.
@@ -891,9 +892,9 @@ The following table shows templates that have been discontinued and no longer co
| SDK version | Default value |
|-------------|---------------|
+ | 10.0 | `net10.0` |
| 9.0 | `net9.0` |
| 8.0 | `net8.0` |
- | 7.0 | `net7.0` |
To create a project that targets a framework earlier than the SDK that you're using, see [`--framework` for `console` projects](#template-options) earlier in this article.
diff --git a/docs/core/versions/index.md b/docs/core/versions/index.md
index 468889f684c0e..09aa7cd3d23b4 100644
--- a/docs/core/versions/index.md
+++ b/docs/core/versions/index.md
@@ -2,7 +2,7 @@
title: How the .NET Runtime and SDK are versioned
description: This article explains how the .NET SDK and Runtime are versioned (similar to semantic versioning).
ms.custom: updateeachrelease
-ms.date: 08/26/2025
+ms.date: 11/07/2025
---
# How .NET is versioned
diff --git a/docs/core/whats-new/dotnet-10/libraries.md b/docs/core/whats-new/dotnet-10/libraries.md
index a7959b652e3e3..1d701c420cc34 100644
--- a/docs/core/whats-new/dotnet-10/libraries.md
+++ b/docs/core/whats-new/dotnet-10/libraries.md
@@ -2,14 +2,14 @@
title: What's new in .NET libraries for .NET 10
description: Learn about the updates to the .NET libraries for .NET 10.
titleSuffix: ""
-ms.date: 10/15/2025
+ms.date: 11/07/2025
ai-usage: ai-assisted
ms.update-cycle: 3650-days
---
# What's new in .NET libraries for .NET 10
-This article describes new features in the .NET libraries for .NET 10. It's been updated for RC 2.
+This article describes new features in the .NET libraries for .NET 10.
## Cryptography
diff --git a/docs/core/whats-new/dotnet-10/overview.md b/docs/core/whats-new/dotnet-10/overview.md
index bbb8b42c6e51e..51546cf35573f 100644
--- a/docs/core/whats-new/dotnet-10/overview.md
+++ b/docs/core/whats-new/dotnet-10/overview.md
@@ -2,14 +2,14 @@
title: What's new in .NET 10
description: Learn about the new features introduced in .NET 10 for the runtime, libraries, and SDK. Also find links to what's new in other areas, such as ASP.NET Core.
titleSuffix: ""
-ms.date: 10/15/2025
+ms.date: 11/07/2025
ai-usage: ai-assisted
ms.update-cycle: 3650-days
---
# What's new in .NET 10
-Learn about the new features in .NET 10 and find links to further documentation. This page has been updated for RC 2.
+Learn about the new features in .NET 10 and find links to further documentation.
.NET 10, the successor to [.NET 9](../dotnet-9/overview.md), is [supported for three years](https://dotnet.microsoft.com/platform/support/policy/dotnet-core) as a long-term support (LTS) release. You can [download .NET 10 here](https://get.dot.net/10).
diff --git a/docs/core/whats-new/dotnet-10/runtime.md b/docs/core/whats-new/dotnet-10/runtime.md
index 5fd1f337fe0e5..3715455cf07a1 100644
--- a/docs/core/whats-new/dotnet-10/runtime.md
+++ b/docs/core/whats-new/dotnet-10/runtime.md
@@ -2,13 +2,13 @@
title: What's new in .NET 10 runtime
description: Learn about the new features introduced in the .NET 10 runtime.
titleSuffix: ""
-ms.date: 10/15/2025
+ms.date: 11/07/2025
ai-usage: ai-assisted
ms.update-cycle: 3650-days
---
# What's new in the .NET 10 runtime
-This article describes new features and performance improvements in the .NET runtime for .NET 10. It's been updated for RC 2.
+This article describes new features and performance improvements in the .NET runtime for .NET 10.
## JIT compiler improvements
diff --git a/docs/core/whats-new/dotnet-10/sdk.md b/docs/core/whats-new/dotnet-10/sdk.md
index 8b873cbcf0591..4c7acfff1c9da 100644
--- a/docs/core/whats-new/dotnet-10/sdk.md
+++ b/docs/core/whats-new/dotnet-10/sdk.md
@@ -2,14 +2,14 @@
title: What's new in the SDK and tooling for .NET 10
description: Learn about the new .NET SDK features introduced in .NET 10.
titleSuffix: ""
-ms.date: 10/15/2025
+ms.date: 11/07/2025
ai-usage: ai-assisted
ms.update-cycle: 3650-days
---
# What's new in the SDK and tooling for .NET 10
-This article describes new features and enhancements in the .NET SDK for .NET 10. It's been updated for RC 2.
+This article describes new features and enhancements in the .NET SDK for .NET 10.
## .NET tools enhancements
diff --git a/docs/core/whats-new/dotnet-6.md b/docs/core/whats-new/dotnet-6.md
index c4f4d16c47a25..e734f27d07700 100644
--- a/docs/core/whats-new/dotnet-6.md
+++ b/docs/core/whats-new/dotnet-6.md
@@ -205,7 +205,7 @@ The *source tarball*, which contains all the source for the .NET SDK, is now a p
## Target framework monikers
-Additional OS-specific target framework monikers (TFMs) have been added for .NET 6, for example, `net6.0-android`, `net6.0-ios`, and `net6.0-macos`. For more information, see [.NET 5+ OS-specific TFMs](../../standard/frameworks.md#net-5-os-specific-tfms).
+Additional OS-specific target framework monikers (TFMs) have been added for .NET 6, for example, `net6.0-android`, `net6.0-ios`, and `net6.0-macos`. For more information, see [OS-specific TFMs](../../standard/frameworks.md#os-specific-tfms).
## Generic math
diff --git a/docs/csharp/fundamentals/tutorials/file-based-programs.md b/docs/csharp/fundamentals/tutorials/file-based-programs.md
index c963ff9c6550e..0f0c8bcba8dad 100644
--- a/docs/csharp/fundamentals/tutorials/file-based-programs.md
+++ b/docs/csharp/fundamentals/tutorials/file-based-programs.md
@@ -9,10 +9,6 @@ ai-usage: ai-assisted
# Tutorial: Build file-based C# programs
-> [!IMPORTANT]
-> File-based apps are a feature of .NET 10, which is in preview.
-> Some information relates to prerelease product that might be modified before release. Microsoft makes no warranties, express or implied, with respect to the information provided here.
-
*File-based apps* are programs contained within a single `*.cs` file that are built and run without a corresponding project (`*.csproj`) file. File-based apps are ideal for learning C# because they have less complexity: The entire program is stored in a single file. File-based apps are also useful for building command line utilities. On Unix platforms, file-based apps can be run using `#!` (shebang) directives.
In this tutorial, you:
@@ -32,7 +28,7 @@ You build a file-based program that writes text as ASCII art. The app is contain
## Prerequisites
-- The .NET 10 preview SDK. Download it from the [.NET download site](https://dotnet.microsoft.com/download/dotnet/10.0).
+- The .NET 10 SDK. Download it from the [.NET download site](https://dotnet.microsoft.com/download/dotnet/10.0).
- Visual Studio Code. Download it from the [Visual Studio Code homepage](https://code.visualstudio.com/Download).
- (Optional) The C# DevKit extension for Visual Studio Code. Download it from the [Visual Studio Code marketplace](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.csdevkit).
diff --git a/docs/csharp/language-reference/compiler-messages/async-await-errors.md b/docs/csharp/language-reference/compiler-messages/async-await-errors.md
new file mode 100644
index 0000000000000..c9faed7a5abf1
--- /dev/null
+++ b/docs/csharp/language-reference/compiler-messages/async-await-errors.md
@@ -0,0 +1,130 @@
+---
+title: Resolve errors and warnings that involve `async`, `await` and the Task-asynchronous protocol
+description: These compiler errors and warnings indicate errors in the syntax for declaring and implementing `async` methods that use the `await` expression.
+f1_keywords:
+ - "CS1983"
+ - "CS1985"
+ - "CS1986"
+ - "CS1989"
+ - "CS1991"
+ - "CS1992"
+ - "CS1994"
+ - "CS1995"
+ - "CS1996"
+ - "CS1997"
+ - "CS1998"
+ - "CS4008"
+ - "CS4009"
+ - "CS4014"
+ - "CS4032"
+ - "CS4033"
+ - "CS8892"
+ - "CS9123"
+ - "CS9330"
+helpviewer_keywords:
+ - "CS1983"
+ - "CS1985"
+ - "CS1986"
+ - "CS1989"
+ - "CS1991"
+ - "CS1992"
+ - "CS1994"
+ - "CS1995"
+ - "CS1996"
+ - "CS1997"
+ - "CS1998"
+ - "CS4008"
+ - "CS4009"
+ - "CS4014"
+ - "CS4032"
+ - "CS4033"
+ - "CS8892"
+ - "CS9123"
+ - "CS9330"
+ms.date: 11/10/2025
+ai-usage: ai-assisted
+---
+# Resolve errors and warnings in async methods using the await operator
+
+This article covers the following compiler errors:
+
+
+- [**CS1983**](#async-method-signature-requirements): *Since this is an async method, the return expression must be of type '`Task`' rather than '`T`'.*
+- [**CS1985**](#await-expression-requirements): *Cannot await in a catch clause.*
+- [**CS1986**](#await-expression-requirements): *'`await`' requires that the type have a suitable '`GetAwaiter`' method.*
+- [**CS1989**](#async-practices): *Async lambda expressions cannot be converted to expression trees.*
+- [**CS1991**](#async-practices): *'Type' cannot implement 'event' because it is a Windows Runtime event and 'event' is a regular .NET event.*
+- [**CS1992**](#await-expression-requirements): *The '`await`' operator can only be used when contained within a method or lambda expression marked with the 'async' modifier.*
+- [**CS1994**](#async-method-signature-requirements): *The '`async`' modifier can only be used in methods that have a body.*
+- [**CS1995**](#await-expression-requirements): *The '`await`' operator may only be used in a query expression within the first collection expression of the initial '`from`' clause or within the collection expression of a '`join`' clause.*
+- [**CS1996**](#await-expression-requirements): *Cannot await in the body of a lock statement.*
+- [**CS1997**](#async-practices): *Since function is an async method that returns a value, a return keyword must not be followed by an object expression.*
+- [**CS1998**](#async-practices): *This async method lacks '`await`' operators and will run synchronously. Consider using the '`await`' operator to await non-blocking API calls, or '`await Task.Run(...)`' to do CPU-bound work on a background thread.*
+- [**CS4008**](#await-expression-requirements): *Cannot await '`void`'.*
+- [**CS4009**](#async-method-signature-requirements): *A void or int returning entry point cannot be async.*
+- [**CS4014**](#async-practices): *Because this call is not awaited, execution of the current method continues before the call is completed. Consider applying the `await` operator to the result of the call.*
+- [**CS4032**](#await-expression-requirements): *The '`await`' operator can only be used within an async method. Consider marking this method with the 'async' modifier and changing its return type to '`Task`'.*
+- [**CS4033**](#await-expression-requirements): *The '`await`' operator can only be used within an async method. Consider marking this method with the '`async`' modifier and changing its return type to '`Task`'.*
+- [**CS8892**](#async-method-signature-requirements): *Method will not be used as an entry point because a synchronous entry point was found.*
+- [**CS9123**](#async-practices): *The '`&`' operator should not be used on parameters or local variables in async methods.*
+- [**CS9330**](#async-method-signature-requirements): *'`MethodImplAttribute.Async`' cannot be manually applied to methods. Mark the method 'async'.*
+
+## Await expression requirements
+
+- **CS1985**: *Cannot await in a catch clause.*
+- **CS1986**: *'`await`' requires that the type have a suitable '`GetAwaiter`' method.*
+- **CS1992**: *The '`await`' operator can only be used when contained within a method or lambda expression marked with the '`async`' modifier.*
+- **CS1995**: *The '`await`' operator may only be used in a query expression within the first collection expression of the initial '`from`' clause or within the collection expression of a '`join`' clause.*
+- **CS1996**: *Cannot await in the body of a lock statement.*
+- **CS4008**: *Cannot await '`void`'.*
+- **CS4032**: *The '`await`' operator can only be used within an async method. Consider marking this method with the '`async`' modifier and changing its return type to '`Task`'.*
+- **CS4033**: *The '`await`' operator can only be used within an async method. Consider marking this method with the '`async`' modifier and changing its return type to '`Task`'.*
+
+To use the `await` operator correctly, follow these rules. For more information, see [Asynchronous programming with async and await](../../asynchronous-programming/index.md).
+
+- Don't use `await` in catch clauses (**CS1985**). While you can use `await` in try blocks and finally blocks (in C# 6 and later), catch blocks present special challenges with exception handling and control flow.
+- Don't use `await` inside [`lock` statement](../statements/lock.md) blocks (**CS1996**). The compiler doesn't support this to avoid emitting code prone to deadlocks.
+- Use `await` only in specific locations within [query expressions](../keywords/query-keywords.md) (**CS1995**): within the first collection expression of the initial `from` clause, or within the collection expression of a `join` clause.
+- Mark methods or lambda expressions with the `async` modifier before using `await` (**CS1992**, **CS4032**, **CS4033**).
+- Ensure awaited types have an accessible `GetAwaiter` method that returns an awaiter type (**CS1986**).
+- Don't apply `await` to expressions of type `void` (**CS4008**).
+- Change the return type to `Task` for methods that don't return a value, or `Task` for methods that return a value.
+
+## Async method signature requirements
+
+- **CS1983**: *Since this is an async method, the return expression must be of type '`Task`' rather than '`T`'.*
+- **CS1994**: *The '`async`' modifier can only be used in methods that have a body.*
+- **CS4009**: *A void or int returning entry point cannot be async.*
+- **CS8892**: *Method will not be used as an entry point because a synchronous entry point was found.*
+- **CS9330**: *'`MethodImplAttribute.Async`' cannot be manually applied to methods. Mark the method '`async`'.*
+
+To declare async methods correctly, follow these signature requirements. For more information, see [Async main return values](../../fundamentals/program-structure/main-command-line.md#async-main-return-values).
+
+- Return one of the valid types: `void`, , `Task`, a task-like type, , or (**CS1983**).
+- Use the `async` modifier only on methods with a body (**CS1994**). Remove the `async` modifier on abstract methods in interfaces or classes.
+- Update to C# 7.1 or higher to use `async` on the `Main` entry point, or avoid using `async` on entry points in earlier versions (**CS4009**).
+- Remove synchronous entry points if you have both sync and async entry points (**CS8892**).
+- Use the `async` keyword instead of manually applying `MethodImplAttribute.Async` (**CS9330**).
+
+## Async practices
+
+- **CS1989**: *Async lambda expressions cannot be converted to expression trees.*
+- **CS1991**: *'Type' cannot implement 'event' because it is a Windows Runtime event and 'event' is a regular .NET event.*
+- **CS1997**: *Since function is an async method that returns a value, a return keyword must not be followed by an object expression.*
+- **CS1998**: *This async method lacks '`await`' operators and will run synchronously. Consider using the '`await`' operator to await non-blocking API calls, or '`await Task.Run(...)`' to do CPU-bound work on a background thread.*
+- **CS4014**: *Because this call is not awaited, execution of the current method continues before the call is completed. Consider applying the `await` operator to the result of the call.*
+- **CS9123**: *The '`&`' operator should not be used on parameters or local variables in async methods.*
+
+To write async code correctly and avoid common pitfalls, follow these best practices. For more information, see [Asynchronous programming with async and await](../../asynchronous-programming/index.md).
+
+- Always [await](../operators/await.md) calls to async methods that return or (**CS4014**). Unawaited calls can lead to lost exceptions and unexpected behavior.
+- Don't return a value from async methods that return `Task` (non-generic); use `Task` instead (**CS1997**).
+- Include at least one `await` operator in async methods, or remove the `async` modifier (**CS1998**).
+- Remove the `return` statement if the method should return `Task` (**CS1997**, **CS1998**).
+- Change the method's return type to `Task` to return a value (**CS1997**, **CS1998**).
+- Remove the `async` modifier and return the task directly if you don't need the async state machine (**CS1997**, **CS1998**).
+- Don't use async methods in expression trees (**CS1989**). Expression trees represent code as data and don't support the complex state machine transformations required by async methods.
+- Don't mark add or remove accessors in an interface or WinRT event as async (**CS1991**). This is a platform-specific restriction for Windows Runtime interoperability.
+- Avoid using the address-of operator (`&`) on expressions inside async methods (**CS9123**). The target may be relocated in memory during suspension, making the pointer invalid.
diff --git a/docs/csharp/language-reference/compiler-messages/cs1983.md b/docs/csharp/language-reference/compiler-messages/cs1983.md
deleted file mode 100644
index 9d1e51b718f44..0000000000000
--- a/docs/csharp/language-reference/compiler-messages/cs1983.md
+++ /dev/null
@@ -1,47 +0,0 @@
----
-description: "Compiler Error CS1983"
-title: "Compiler Error CS1983"
-ms.date: 9/12/2022
-f1_keywords:
- - "CS1983"
-helpviewer_keywords:
- - "CS1983"
----
-# Compiler Error CS1983
-
-The return type of an async method must be void, Task, Task\, a task-like type (A task-like type is one that adheres to the pattern, [described here](~/_csharpstandard/standard/classes.md#15151-general), required by the C# specification), IAsyncEnumerable\, or IAsyncEnumerator\
-
-## Example
-
- The following sample generates CS1983:
-
-```csharp
-// CS1983.cs (4,62)
-using System.Collections.Generic;
-
-class C
-{
- static async IEnumerable M()
- {
- yield return await Task.FromResult(1);
- }
-}
-```
-
-Since `IEnumerable.GetEnumerator` returns an `IEnumerator` whose `MoveNext` method does not return a value of `Task`, it is not compatible with an `async` method.
-
-## To correct this error
-
-Use an interface that results in the invocation of method that returns a type of `Task`, for example, `IAsyncEnumerable`:
-
-```csharp
-using System.Collections.Generic;
-
-class C
-{
- static async IAsyncEnumerable M()
- {
- yield return await Task.FromResult(1);
- }
-}
-```
diff --git a/docs/csharp/language-reference/compiler-messages/cs1986.md b/docs/csharp/language-reference/compiler-messages/cs1986.md
deleted file mode 100644
index ba1290a505728..0000000000000
--- a/docs/csharp/language-reference/compiler-messages/cs1986.md
+++ /dev/null
@@ -1,83 +0,0 @@
----
-description: "Compiler Error CS1986"
-title: "Compiler Error CS1986"
-ms.date: 9/12/2022
-f1_keywords:
- - "CS1986"
-helpviewer_keywords:
- - "CS1986"
----
-# Compiler Error CS1986
-
-'await' requires that the type have a suitable 'GetAwaiter' method
-
-## Example
-
- The following sample generates CS1986:
-
-```csharp
-using System.Runtime.CompilerServices;
-using System;
-using System.Threading.Tasks;
-
-class Program
-{
- static async Task M(MyTask x)
- {
- var z = await x;
- System.Console.WriteLine(z);
- }
-}
-
-public class MyTask
-{
- readonly MyTaskAwaiter awaiter;
- public MyTask(TResult value)
- {
- this.awaiter = new MyTaskAwaiter(value);
- }
- public static MyTaskAwaiter GetAwaiter() => throw new NotImplementedException();
-}
-
-public class MyTaskAwaiter : INotifyCompletion
-{
- TResult value;
- public MyTaskAwaiter(TResult value)
- {
- this.value = value;
- }
- public bool IsCompleted { get => true; }
- public TResult GetResult() => value;
- public void OnCompleted(Action continuation) => throw new NotImplementedException();
-}
-```
-
-A `GetAwaiter` method must be a non-static method named `GetAwaiter` and return an instance of an object that implements `INotifyCompletion`.
-
-A GetAwaiter needs to implement the `INotifyCompletion` interface (and optionally the `ICriticalNotifyCompletion` interface) and return a type that itself exposes three members [1]:
-
-```csharp
-bool IsCompleted { get; }
-void OnCompleted(Action continuation);
-TResult GetResult(); // TResult can also be void
-```
-
-## To correct this error
-
-The reason CS1986 is raised in the example is that the `GetAwaiter` method is `static`. To correct this error, remove the `static` modifier (and correctly implement the method):
-
-```csharp
-public class MyTask
-{
- readonly MyTaskAwaiter awaiter;
- public MyTask(TResult value)
- {
- this.awaiter = new MyTaskAwaiter(value);
- }
- public MyTaskAwaiter GetAwaiter() => awaiter;
-}
-```
-
-## See also
-
-[1] [await anything;](https://devblogs.microsoft.com/pfxteam/await-anything/)
diff --git a/docs/csharp/language-reference/compiler-messages/cs1994.md b/docs/csharp/language-reference/compiler-messages/cs1994.md
deleted file mode 100644
index a6c89cc814384..0000000000000
--- a/docs/csharp/language-reference/compiler-messages/cs1994.md
+++ /dev/null
@@ -1,51 +0,0 @@
----
-description: "Compiler Error CS1994"
-title: "Compiler Error CS1994"
-ms.date: 9/12/2022
-f1_keywords:
- - "CS1994"
-helpviewer_keywords:
- - "CS1994"
----
-# Compiler Error CS1994
-
-The 'async' modifier can only be used in methods that have a body.
-
-## Example
-
- The following sample generates CS1994:
-
-```csharp
-interface IInterface
-{
- async void F();
-}
-```
-
-## To correct this error
-
-A non-concrete method declaration in an interface declaration has no method body. In order to support the `async` modifier, the compiler subsumes the method body logic in a state machine. Without a method body, the compiler cannot emit this state machine. In addition, the logic of a method body must contain an await operator to signify a continuation the state machine must manage. Without that `await` operator, a state machine has nothing to manage.
-
-In the case of a non-concrete method, if deferring the implementation of a method body to a class that implements the interface, simply removing the async modifier will correct the error:
-
-```csharp
-interface IInterface
-{
- void F();
-}
-```
-
-Alternatively, a concrete default method (introduced in C# 8.0) could be declared within the interface:
-
-```csharp
-interface IInterface
-{
- async void F()
- {
- await Task.Run(() =>
- {
- /* do something useful*/
- });
- }
-}
-```
diff --git a/docs/csharp/language-reference/compiler-messages/cs1996.md b/docs/csharp/language-reference/compiler-messages/cs1996.md
deleted file mode 100644
index 8d9b75aae1616..0000000000000
--- a/docs/csharp/language-reference/compiler-messages/cs1996.md
+++ /dev/null
@@ -1,58 +0,0 @@
----
-description: "Compiler Error CS1996"
-title: "Compiler Error CS1996"
-ms.date: 7/01/2024
-f1_keywords:
- - "CS1996"
-helpviewer_keywords:
- - "CS1996"
----
-# Compiler Error CS1996
-
-Cannot await in the body of a lock statement
-
-## Example
-
-The following sample generates CS1996:
-
-```csharp
-public class C
-{
- private readonly Dictionary keyValuePairs = new();
-
- public async Task ReplaceValueAsync(string key, HttpClient httpClient)
- {
- lock (keyValuePairs)
- {
- var newValue = await httpClient.GetStringAsync(string.Empty);
- if (keyValuePairs.ContainsKey(key)) keyValuePairs[key] = newValue;
- else keyValuePairs.Add(key, newValue);
- return newValue;
- }
- }
-}
-```
-
-The preceding code produces the same error with C# 13, as the `await` is in the `lock` statement block.
-
-## To correct this error
-
-Asynchronous code within a `lock` statement block is hard to implement reliably and even harder to implement in a general sense. The C# compiler doesn't support doing this to avoid emitting code prone to deadlocks. Extracting the asynchronous code from the `lock` statement block corrects this error. For example:
-
-```csharp
-public class C
-{
- private readonly Dictionary keyValuePairs = new();
-
- public async Task ReplaceValueAsync(string key, HttpClient httpClient)
- {
- var newValue = await httpClient.GetStringAsync(string.Empty);
- lock (keyValuePairs)
- {
- if (keyValuePairs.ContainsKey(key)) keyValuePairs[key] = newValue;
- else keyValuePairs.Add(key, newValue);
- return newValue;
- }
- }
-}
-```
diff --git a/docs/csharp/language-reference/compiler-messages/cs1997.md b/docs/csharp/language-reference/compiler-messages/cs1997.md
deleted file mode 100644
index d5adabf0a174c..0000000000000
--- a/docs/csharp/language-reference/compiler-messages/cs1997.md
+++ /dev/null
@@ -1,47 +0,0 @@
----
-description: "Compiler Error CS1997"
-title: "Compiler Error CS1997"
-ms.date: 9/12/2022
-f1_keywords:
- - "CS1997"
-helpviewer_keywords:
- - "CS1997"
----
-# Compiler Error CS1997
-
-Since `method` is an async method that returns `Task`, a return keyword must not be followed by an object expression. Did you intend to return `Task`?
-
-## Example
-
- The following sample generates CS1997:
-
-```csharp
-using System.Threading.Tasks;
-class C
-{
- public static async Task F1()
- {
- return await Task.Factory.StartNew(() => 1);
- }
-}
-```
-
-## To correct this error
-
-A `return` statement in an `async` method returns the result of an awaitable statement. If the awaitable statement does not have a result, the state machine emitted by the compiler encapsulates returning the non-generic `Task`, eliminating the need for a `return` statement. Encountering error CS1997 means the referenced code includes a `return` statement that conflicts with the `async` modifier and the method's `return` type. The error indicates that the current method's implementation does not align with its initial intent. The simplest way to correct the error is to remove the `return` statement:
-
-```csharp
- public static async Task F1()
- {
- await Task.Factory.StartNew(() => 1);
- }
-```
-
-But, the resulting implementation no longer needs the `async` modifier or the `await` operator. A more accurate way of correcting this error is not to remove the `return` statement, but to remove the `async` modifier and the `await` operator:
-
-```csharp
- public static Task F1()
- {
- return Task.Factory.StartNew(() => 1);
- }
-```
diff --git a/docs/csharp/language-reference/compiler-messages/cs4008.md b/docs/csharp/language-reference/compiler-messages/cs4008.md
deleted file mode 100644
index 67f5f1fd24daa..0000000000000
--- a/docs/csharp/language-reference/compiler-messages/cs4008.md
+++ /dev/null
@@ -1,57 +0,0 @@
----
-description: "Compiler Error CS4008"
-title: "Compiler Error CS4008"
-ms.date: 9/12/2022
-f1_keywords:
- - "CS4008"
-helpviewer_keywords:
- - "CS4008"
----
-# Compiler Error CS4008
-
-Cannot await 'void'
-
-## Example
-
- The following sample generates CS4008:
-
-```csharp
-// CS4008.cs (7,33)
-
-using System.Threading.Tasks;
-
-class Test
-{
- public async void goo()
- {
- await Task.Factory.StartNew(() => { });
- }
-
- public async void bar()
- {
- await goo();
- }
-
- public static void Main() { }
-}
-```
-
-## To correct this error
-
-Although this error can be corrected by changing the signature of `goo`:
-
-```csharp
- public async Task goo()
- {
- await Task.Factory.StartNew(() => { });
- }
-```
-
-Simply adding `Task` to the method's signature needlessly perpetuates a compiler-created state machine when it is not needed. The `goo` method does not require an `await`, nor does it need to be asynchronous. Instead, consider simply returning the `Task` created by `Task.Factory`:
-
-```csharp
- public Task goo()
- {
- return Task.Factory.StartNew(() => { });
- }
-```
diff --git a/docs/csharp/language-reference/compiler-messages/cs4014.md b/docs/csharp/language-reference/compiler-messages/cs4014.md
deleted file mode 100644
index 4279ed95e5c76..0000000000000
--- a/docs/csharp/language-reference/compiler-messages/cs4014.md
+++ /dev/null
@@ -1,173 +0,0 @@
----
-description: "Compiler Warning (level 1) CS4014"
-title: "Compiler Warning (level 1) CS4014"
-ms.date: 08/18/2020
-f1_keywords:
- - "CS4014"
-helpviewer_keywords:
- - "CS4014"
-ms.assetid: b9e7c029-eaa9-48d7-8b3c-9823772c9acb
----
-
-# Compiler Warning (level 1) CS4014
-
-Because this call is not awaited, execution of the current method continues before the call is completed. Consider applying the `await` operator to the result of the call.
-
-The current method calls an async method that returns a or a and doesn't apply the [await](../operators/await.md) operator to the result. The call to the async method starts an asynchronous task. However, because no `await` operator is applied, the program continues without waiting for the task to complete. In most cases, that behavior isn't what you expect. Usually other aspects of the calling method depend on the results of the call or, minimally, the called method is expected to complete before you return from the method that contains the call.
-
-An equally important issue is what happens to exceptions that are raised in the called async method. An exception that's raised in a method that returns a or is stored in the returned task. If you don't await the task or explicitly check for exceptions, the exception is lost. If you await the task, its exception is rethrown.
-
-As a best practice, you should always await the call.
-
-You should consider suppressing the warning only if you're sure that you don't want to wait for the asynchronous call to complete and that the called method won't raise any exceptions. In that case, you can suppress the warning by assigning the task result of the call to a variable.
-
-The following example shows how to cause the warning, how to suppress it, and how to await the call.
-
-```csharp
-static async Task CallingMethodAsync(int millisecondsDelay)
-{
- Console.WriteLine(" Entering calling method.");
-
- // Call #1.
- // Call an async method. Because you don't await it, its completion
- // isn't coordinated with the current method, CallingMethodAsync.
- // The following line causes warning CS4014.
- CalledMethodAsync(millisecondsDelay);
-
- // Call #2.
- // To suppress the warning without awaiting, you can assign the
- // returned task to a variable. The assignment doesn't change how
- // the program runs. However, recommended practice is always to
- // await a call to an async method.
-
- // Replace Call #1 with the following line.
- // Task delayTask = CalledMethodAsync(millisecondsDelay);
-
- // Call #3
- // To contrast with an awaited call, replace the unawaited call
- // (Call #1 or Call #2) with the following awaited call. Best
- // practice is to await the call.
-
- // await CalledMethodAsync(millisecondsDelay);
-
- Console.WriteLine(" Returning from calling method.");
-}
-
-static async Task CalledMethodAsync(int millisecondsDelay)
-{
- Console.WriteLine(" Entering called method, starting and awaiting Task.Delay.");
-
- await Task.Delay(millisecondsDelay);
-
- Console.WriteLine(" Task.Delay is finished--returning from called method.");
-}
-```
-
-In the example, if you choose Call #1 or Call #2, the unawaited async method `CalledMethodAsync` finishes after both its caller `CallingMethodAsync` and the caller's caller is complete. The last line in the following output shows you when the called method finishes. Entry to and exit from the event handler that calls `CallingMethodAsync` in the full example are marked in the output.
-
-```console
-Entering the Click event handler.
- Entering calling method.
- Entering called method, starting and awaiting Task.Delay.
- Returning from calling method.
-Exiting the Click event handler.
- Task.Delay is finished--returning from called method.
-```
-
-You can also suppress compiler warnings by using [#pragma warning](../preprocessor-directives.md#pragma-warning) directives.
-
-## Example
-
-The following console application contains the methods from the previous example. The following steps set up the application.
-
-1. Create a console application, and name it `AsyncWarning`.
-1. In the Visual Studio Code Editor, choose the *Program.cs* file.
-1. Replace the code in *Program.cs* with the following code.
-
- ```csharp
- using System;
- using System.Threading.Tasks;
-
- namespace AsyncWarning
- {
- class Program
- {
- static async Task Main()
- {
- Console.WriteLine("Entering Main() application entry point.");
-
- int millisecondsDelay = 2000;
- await CallingMethodAsync(millisecondsDelay);
-
- Console.WriteLine("Exiting Main() application entry point.");
-
- await Task.Delay(millisecondsDelay + 500);
- }
-
- static async Task CallingMethodAsync(int millisecondsDelay)
- {
- Console.WriteLine(" Entering calling method.");
-
- // Call #1.
- // Call an async method. Because you don't await it, its completion
- // isn't coordinated with the current method, CallingMethodAsync.
- // The following line causes warning CS4014.
- // CalledMethodAsync(millisecondsDelay);
-
- // Call #2.
- // To suppress the warning without awaiting, you can assign the
- // returned task to a variable. The assignment doesn't change how
- // the program runs. However, recommended practice is always to
- // await a call to an async method.
-
- // Replace Call #1 with the following line.
- //Task delayTask = CalledMethodAsync(millisecondsDelay);
-
- // Call #3
- // To contrast with an awaited call, replace the unawaited call
- // (Call #1 or Call #2) with the following awaited call. Best
- // practice is to await the call.
-
- // await CalledMethodAsync(millisecondsDelay);
-
- Console.WriteLine(" Returning from calling method.");
- }
-
- static async Task CalledMethodAsync(int millisecondsDelay)
- {
- Console.WriteLine(" Entering called method, starting and awaiting Task.Delay.");
-
- await Task.Delay(millisecondsDelay);
-
- Console.WriteLine(" Task.Delay is finished--returning from called method.");
- }
- }
-
- // Output with Call #1 or Call #2. (Wait for the last line to appear.)
-
- // Entering Main() application entry point.
- // Entering calling method.
- // Entering called method, starting and awaiting Task.Delay.
- // Returning from calling method.
- // Exiting Main() application entry point.
- // Task.Delay is finished--returning from called method.
-
- // Output with Call #3, which awaits the call to CalledMethodAsync.
-
- // Entering Main() application entry point.
- // Entering calling method.
- // Entering called method, starting and awaiting Task.Delay.
- // Task.Delay is finished--returning from called method.
- // Returning from calling method.
- // Exiting Main() application entry point.
- }
- ```
-
-1. Select the F5 key to run the program.
-
-The expected output appears at the end of the code.
-
-## See also
-
-- [await](../operators/await.md)
-- [Asynchronous programming with async and await](../../asynchronous-programming/index.md)
diff --git a/docs/csharp/language-reference/compiler-messages/cs4032.md b/docs/csharp/language-reference/compiler-messages/cs4032.md
deleted file mode 100644
index a1cfdc2217b95..0000000000000
--- a/docs/csharp/language-reference/compiler-messages/cs4032.md
+++ /dev/null
@@ -1,49 +0,0 @@
----
-description: "Compiler Error CS4032"
-title: "Compiler Error CS4032"
-ms.date: 9/12/2022
-f1_keywords:
- - "CS4032"
-helpviewer_keywords:
- - "CS4032"
----
-# Compiler Error CS4032
-
-The 'await' operator can only be used within an async method. Consider marking this method with the 'async' modifier and changing its return type to 'Task\'.
-
-## Example
-
- The following sample generates CS4032:
-
-```csharp
-// CS4032.cs (7,9)
-using System.Collections.Generic;
-using System.Threading.Tasks;
-
-class C
-{
- static IAsyncEnumerator M(int value)
- {
- yield return value;
- await Task.CompletedTask;
- }
-}
-```
-
-## To correct this error
-
-To correct this error, change the signature of method `M` to make it asynchronous:
-
-```csharp
-using System.Collections.Generic;
-using System.Threading.Tasks;
-
-class C
-{
- static async IAsyncEnumerator M(int value)
- {
- yield return value;
- await Task.CompletedTask;
- }
-}
-```
diff --git a/docs/csharp/language-reference/compiler-messages/cs4033.md b/docs/csharp/language-reference/compiler-messages/cs4033.md
deleted file mode 100644
index d9c3ca232acb1..0000000000000
--- a/docs/csharp/language-reference/compiler-messages/cs4033.md
+++ /dev/null
@@ -1,48 +0,0 @@
----
-description: "Compiler Error CS4033"
-title: "Compiler Error CS4033"
-ms.date: 9/12/2022
-f1_keywords:
- - "CS4033"
-helpviewer_keywords:
- - "CS4033"
----
-# Compiler Error CS4033
-
-The 'await' operator can only be used within an async method. Consider marking this method with the 'async' modifier and changing its return type to 'Task'.
-
-## Example
-
- The following sample generates CS4033:
-
-```csharp
-// CS4033.cs (7,9)
-
-using System.Collections.Generic;
-class C
-{
- void M(IAsyncEnumerable collection)
- {
- await foreach (var i in collection)
- {
- }
- }
-}
-```
-
-## To correct this error
-
-To correct this error, change the signature of method `M` to make it asynchronous:
-
-```csharp
-using System.Collections.Generic;
-class C
-{
- async void M(IAsyncEnumerable collection)
- {
- await foreach (var i in collection)
- {
- }
- }
-}
-```
diff --git a/docs/csharp/language-reference/keywords/async.md b/docs/csharp/language-reference/keywords/async.md
index 2562d0ecb113d..a65193cbd47ca 100644
--- a/docs/csharp/language-reference/keywords/async.md
+++ b/docs/csharp/language-reference/keywords/async.md
@@ -30,7 +30,7 @@ string contents = await httpClient.GetStringAsync(requestUrl);
An async method runs synchronously until it reaches its first `await` expression, at which point the method is suspended until the awaited task is complete. In the meantime, control returns to the caller of the method, as the example in the next section shows.
-If the method that the `async` keyword modifies doesn't contain an `await` expression or statement, the method executes synchronously. A compiler warning alerts you to any async methods that don't contain `await` statements, because that situation might indicate an error. See [Compiler Warning (level 1) CS4014](../compiler-messages/cs4014.md).
+If the method that the `async` keyword modifies doesn't contain an `await` expression or statement, the method executes synchronously. A compiler warning alerts you to any async methods that don't contain `await` statements, because that situation might indicate an error. See [Compiler Warning (level 1) CS4014](../compiler-messages/async-await-errors.md#async-practices).
The `async` keyword is contextual in that it's a keyword only when it modifies a method, a lambda expression, or an anonymous method. In all other contexts, it's interpreted as an identifier.
diff --git a/docs/csharp/language-reference/toc.yml b/docs/csharp/language-reference/toc.yml
index ccba45bd2a50e..081e8b3c26050 100644
--- a/docs/csharp/language-reference/toc.yml
+++ b/docs/csharp/language-reference/toc.yml
@@ -503,6 +503,11 @@ items:
CS0182, CS0591, CS0599, CS0617, CS0633, CS0643, CS0655, CS0839, CS1016, CS1739,
CS1740, CS1742, CS1744, CS1746, CS7036, CS7067, CS8196, CS8324, CS8861, CS8905,
CS8943, CS8944, CS8945, CS8948, CS8949, CS8950, CS8951, CS8964, CS8965, CS8966
+ - name: asynchronous methods
+ href: ./compiler-messages/async-await-errors.md
+ displayName: >
+ async, await,
+ CS1983, CS1985, CS1986, CS1989, CS1991, CS1992, CS1994, CS1995, CS1996, CS1997, CS1998, CS4008, CS4009, CS4014, CS4032, CS4033, CS8892, CS9123, CS9330
- name: Reference parameters
href: ./compiler-messages/ref-modifiers-errors.md
displayName: >
@@ -1734,16 +1739,6 @@ items:
href: ../misc/cs1958.md
- name: CS1959
href: ../misc/cs1959.md
- - name: CS1983
- href: ./compiler-messages/cs1983.md
- - name: CS1986
- href: ./compiler-messages/cs1986.md
- - name: CS1994
- href: ./compiler-messages/cs1994.md
- - name: CS1996
- href: ./compiler-messages/cs1996.md
- - name: CS1997
- href: ./compiler-messages/cs1997.md
- name: CS2001
href: ../misc/cs2001.md
- name: CS2003
@@ -1790,14 +1785,6 @@ items:
href: ../misc/cs2035.md
- name: CS2036
href: ../misc/cs2036.md
- - name: CS4008
- href: ./compiler-messages/cs4008.md
- - name: CS4009
- href: ../misc/CS4009.md
- - name: CS4032
- href: ./compiler-messages/cs4032.md
- - name: CS4033
- href: ./compiler-messages/cs4033.md
- name: CS5001
href: ../misc/cs5001.md
- name: CS7003
@@ -2048,8 +2035,6 @@ items:
href: ../misc/cs3026.md
- name: CS3027
href: ../misc/cs3027.md
- - name: CS4014
- href: ./compiler-messages/cs4014.md
- name: CS5000
href: ../misc/cs5000.md
- name: Level 2 warning messages
diff --git a/docs/csharp/misc/CS4009.md b/docs/csharp/misc/CS4009.md
deleted file mode 100644
index 5649a7cf26184..0000000000000
--- a/docs/csharp/misc/CS4009.md
+++ /dev/null
@@ -1,65 +0,0 @@
----
-description: "Learn more about: Compiler Error CS4009"
-title: "Compiler Error CS4009"
-ms.date: 08/25/2018
-f1_keywords:
- - "CS4009"
-helpviewer_keywords:
- - "CS4009"
----
-# Compiler Error CS4009
-
-'Type.Method': an entry point cannot be marked with the `async` modifier.
-
-You cannot use the `async` keyword in the application entry point (typically the `Main` method).
-
-> [!IMPORTANT]
-> Starting with C# 7.1, the `Main` method can have an `async` modifier. For more information, see [Async main return values](../fundamentals/program-structure/main-command-line.md#async-main-return-values). For information about how to select the C# language version, see the [Select the C# language version](../language-reference/configure-language-version.md) article.
-
-## Example
-
-The following example produces CS4009:
-
-```csharp
-using System;
-using System.Threading.Tasks;
-
-public class Example
-{
- public static async void Main()
- {
- Console.WriteLine("About to wait two seconds");
- await WaitTwoSeconds();
- Console.WriteLine("About to exit the program");
- }
-
- private static async Task WaitTwoSeconds()
- {
- await Task.Delay(2000);
- Console.WriteLine("Returning from an asynchronous method");
- }
-}
-```
-
-## To correct this error
-
-[Update the C# language version](../language-reference/configure-language-version.md) used by the project to 7.1 or higher.
-
-If you use C# 7.0 or lower, remove the `async` keyword from the signature of the application entry point. Also remove any `await` keywords you've used to await asynchronous methods in your application entry point.
-
-However, you still have to wait for the asynchronous method to complete before your entry point resumes execution. Otherwise, compilation generates compiler warning CS4014, and the application will terminate before the asynchronous operation completes. The following example illustrates this problem:
-
-[!code-csharp[CS4009](~/samples/snippets/csharp/misc/cs4009-1.cs)]
-
-To await a method that returns a , call its method, as the following example illustrates:
-
-[!code-csharp[CS4009](~/samples/snippets/csharp/misc/cs4009-2.cs)]
-
-To await a method that returns a , retrieve the value of its property, as the following example does:
-
-[!code-csharp[CS4009](~/samples/snippets/csharp/misc/cs4009-3.cs)]
-
-## See also
-
-- [`async` keyword](../language-reference/keywords/async.md)
-- [`await` operator](../language-reference/operators/await.md)
diff --git a/docs/csharp/misc/sorry-we-don-t-have-specifics-on-this-csharp-error.md b/docs/csharp/misc/sorry-we-don-t-have-specifics-on-this-csharp-error.md
index 9fe1611f0a880..bc74762b1800a 100644
--- a/docs/csharp/misc/sorry-we-don-t-have-specifics-on-this-csharp-error.md
+++ b/docs/csharp/misc/sorry-we-don-t-have-specifics-on-this-csharp-error.md
@@ -39,14 +39,8 @@ f1_keywords:
- "CS1960"
- "CS1961"
- "CS1982"
- - "CS1985"
- - "CS1989"
- - "CS1991"
- - "CS1992"
- - "CS1995"
- "CS1996"
- "CS1997"
- - "CS1998"
- "CS2038"
- "CS2039"
- "CS2040"
@@ -548,7 +542,7 @@ f1_keywords:
- "CS9096"
- "CS9097"
# C# 14 errors begin here
- - "CS9330"
+
- "CS9331"
- "CS9333"
- "CS9334"
diff --git a/docs/csharp/whats-new/csharp-14.md b/docs/csharp/whats-new/csharp-14.md
index d63573bc62c3a..0cd2fa5eb95ed 100644
--- a/docs/csharp/whats-new/csharp-14.md
+++ b/docs/csharp/whats-new/csharp-14.md
@@ -22,7 +22,7 @@ C# 14 is supported on **.NET 10**. For more information, see [C# language versio
You can download the latest .NET 10 SDK from the [.NET downloads page](https://dotnet.microsoft.com/download). You can also download [Visual Studio 2022](https://visualstudio.microsoft.com/vs/), which includes the .NET 10 SDK.
-New features are added to the "What's new in C#" page when they're available in public preview releases. The [working set](https://github.com/dotnet/roslyn/blob/main/docs/Language%20Feature%20Status.md#working-set) section of the [roslyn feature status page](https://github.com/dotnet/roslyn/blob/main/docs/Language%20Feature%20Status.md) tracks when upcoming features are merged into the main branch. This article was last updated for .NET 10 Preview 1.
+New features are added to the "What's new in C#" page when they're available in public preview releases. The [working set](https://github.com/dotnet/roslyn/blob/main/docs/Language%20Feature%20Status.md#working-set) section of the [roslyn feature status page](https://github.com/dotnet/roslyn/blob/main/docs/Language%20Feature%20Status.md) tracks when upcoming features are merged into the main branch.
You can find any breaking changes introduced in C# 14 in our article on [breaking changes](~/_roslyn/docs/compilers/CSharp/Compiler%20Breaking%20Changes%20-%20DotNet%2010.md).
diff --git a/docs/csharp/whats-new/tutorials/compound-assignment-operators.md b/docs/csharp/whats-new/tutorials/compound-assignment-operators.md
index 8744a49c1039c..6e4611ed48495 100644
--- a/docs/csharp/whats-new/tutorials/compound-assignment-operators.md
+++ b/docs/csharp/whats-new/tutorials/compound-assignment-operators.md
@@ -39,7 +39,7 @@ In this tutorial, you:
## Prerequisites
-- The .NET 10 preview SDK. Download it from the [.NET download site](https://dotnet.microsoft.com/download/dotnet/10.0).
+- The .NET 10 SDK. Download it from the [.NET download site](https://dotnet.microsoft.com/download/dotnet/10.0).
- Visual Studio 2026 (preview). Download it from the [Visual Studio insiders page](https://visualstudio.microsoft.com/insiders/).
## Analyze the starting sample
diff --git a/docs/csharp/whats-new/tutorials/extension-members.md b/docs/csharp/whats-new/tutorials/extension-members.md
index d92d3aa537f32..6b03cc92fd292 100644
--- a/docs/csharp/whats-new/tutorials/extension-members.md
+++ b/docs/csharp/whats-new/tutorials/extension-members.md
@@ -26,7 +26,7 @@ In this tutorial, you:
## Prerequisites
-- The .NET 10 preview SDK. Download it from the [.NET download site](https://dotnet.microsoft.com/download/dotnet/10.0).
+- The .NET 10 SDK. Download it from the [.NET download site](https://dotnet.microsoft.com/download/dotnet/10.0).
- Visual Studio 2026 (preview). Download it from the [Visual Studio insiders page](https://visualstudio.microsoft.com/insiders/).
## Create the sample application
diff --git a/docs/framework/install/on-windows-and-server.md b/docs/framework/install/on-windows-and-server.md
index 8f15584e90d63..2b544b59a892c 100644
--- a/docs/framework/install/on-windows-and-server.md
+++ b/docs/framework/install/on-windows-and-server.md
@@ -1,7 +1,7 @@
---
title: Install .NET Framework on Windows
description: Learn how to install .NET Framework on Windows 11, Windows 10, and Windows Server. This article also includes information about .NET Framework and unsupported versions of Windows, such as Windows 8, Windows Vista, and Windows XP.
-ms.date: 07/10/2025
+ms.date: 11/06/2025
---
# Install .NET Framework on Windows and Windows Server
@@ -52,6 +52,7 @@ In the following table, ❌ represents an unsupported version of Windows 11 and
| Windows 11 version | .NET Framework included | Latest .NET Framework supported |
|-----------------------|-------------------------|---------------------------------|
+| ✔️ 25H2 (September 2025) | 4.8.1 | 4.8.1 |
| ✔️ 24H2 (October 2024) | 4.8.1 | 4.8.1 |
| ✔️ 23H2 (October 2023) | 4.8.1 | 4.8.1 |
| ❌ 22H2 (September 2022) | 4.8.1 | 4.8.1 |
diff --git a/docs/framework/install/versions-and-dependencies.md b/docs/framework/install/versions-and-dependencies.md
index c05ab60e7958b..403922b7557eb 100644
--- a/docs/framework/install/versions-and-dependencies.md
+++ b/docs/framework/install/versions-and-dependencies.md
@@ -58,7 +58,7 @@ Jump to:
| | Versions |
|--------------------|-----------------------|
| **CLR** | 4 |
-| **Windows** | ✔️ 11 version 24H2 (version 26100)
✔️ 11 October 2023 Release (version 22631)
✔️ 11 September 2022 Release (version 22621)
➕ 11 October 2021 Release (version 22000)
➕ 10 October 2022 Update (22H2)
➕ 10 November 2021 Update
➕ 10 May 2021 Update
➕ 10 October 2020 Update
|
+| **Windows** | ✔️ 11 September 2025 Release (version 26200)
✔️ 11 October 2024 Release (version 26100)
✔️ 11 October 2023 Release (version 22631)
✔️ 11 September 2022 Release (version 22621)
➕ 11 October 2021 Release (version 22000)
➕ 10 October 2022 Update (22H2)
➕ 10 November 2021 Update
➕ 10 May 2021 Update
➕ 10 October 2020 Update
|
| **Windows Server** | ✔️ Windows Server 2025
➕ Windows Server 2022 |
To determine the installed .NET version, use the following `Release` DWORD:
diff --git a/docs/fsharp/index.yml b/docs/fsharp/index.yml
index 2219fb6212cdc..ea543964a4373 100644
--- a/docs/fsharp/index.yml
+++ b/docs/fsharp/index.yml
@@ -53,7 +53,7 @@ landingContent:
- text: "F# library reference"
url: https://fsharp.github.io/fsharp-core-docs
- text: ".NET library reference"
- url: ../../api/index.md?view=net-9.0
+ url: ../../api/index.md
- title: "F# fundamentals"
linkLists:
diff --git a/docs/fundamentals/code-analysis/overview.md b/docs/fundamentals/code-analysis/overview.md
index 5bf366d525f3f..9e8ecc5df9b0d 100644
--- a/docs/fundamentals/code-analysis/overview.md
+++ b/docs/fundamentals/code-analysis/overview.md
@@ -2,7 +2,7 @@
title: Code analysis in .NET
titleSuffix: ""
description: Learn about source code analysis in the .NET SDK.
-ms.date: 09/30/2025
+ms.date: 11/05/2025
ms.topic: overview
ms.custom: updateeachrelease
helpviewer_keywords:
@@ -24,6 +24,41 @@ If rule violations are found by an analyzer, they're reported as a suggestion, w
### Enabled rules
+# [.NET 10](#tab/net-10)
+
+The following rules are enabled, by default, as errors or warnings in .NET 10. Additional rules are enabled as suggestions.
+
+| Diagnostic ID | Category | Severity | Version added | Description |
+|-----------------------------------|------------------|----------|---------------|---------------------------------|
+| [CA1416](quality-rules/ca1416.md) | Interoperability | Warning | .NET 5 | Validate platform compatibility |
+| [CA1417](quality-rules/ca1417.md) | Interoperability | Warning | .NET 5 | Do not use `OutAttribute` on string parameters for P/Invokes |
+| [CA1418](quality-rules/ca1418.md) | Interoperability | Warning | .NET 6 | Use valid platform string |
+| [CA1420](quality-rules/ca1420.md) | Interoperability | Warning | .NET 7 | Using features that require runtime marshalling when it's disabled will result in run-time exceptions |
+| [CA1422](quality-rules/ca1422.md) | Interoperability | Warning | .NET 7 | Validate platform compatibility |
+| [CA1831](quality-rules/ca1831.md) | Performance | Warning | .NET 5 | Use `AsSpan` instead of range-based indexers for string when appropriate |
+| [CA1856](quality-rules/ca1856.md) | Performance | Error | .NET 8 | Incorrect usage of `ConstantExpected` attribute |
+| [CA1857](quality-rules/ca1857.md) | Performance | Warning | .NET 8 | A constant is expected for the parameter |
+| [CA2013](quality-rules/ca2013.md) | Reliability | Warning | .NET 5 | Do not use `ReferenceEquals` with value types |
+| [CA2014](quality-rules/ca2014.md) | Reliability | Warning | .NET 5 | Do not use `stackalloc` in loops |
+| [CA2015](quality-rules/ca2015.md) | Reliability | Warning | .NET 5 | Do not define finalizers for types derived from |
+| [CA2017](quality-rules/ca2017.md) | Reliability | Warning | .NET 6 | Parameter count mismatch |
+| [CA2018](quality-rules/ca2018.md) | Reliability | Warning | .NET 6 | The `count` argument to `Buffer.BlockCopy` should specify the number of bytes to copy |
+| [CA2021](quality-rules/ca2021.md) | Reliability | Warning | .NET 8 | Do not call `Enumerable.Cast` or `Enumerable.OfType` with incompatible types |
+| [CA2022](quality-rules/ca2022.md) | Reliability | Warning | .NET 9 | Avoid inexact read with `Stream.Read` |
+| [CA2023](quality-rules/ca2023.md) | Reliability | Warning | .NET 10 | Invalid braces in message template |
+| [CA2200](quality-rules/ca2200.md) | Usage | Warning | .NET 5 | Rethrow to preserve stack details |
+| [CA2247](quality-rules/ca2247.md) | Usage | Warning | .NET 5 | Argument passed to `TaskCompletionSource` constructor should be enum instead of |
+| [CA2252](quality-rules/ca2252.md) | Usage | Error | .NET 6 | Opt in to preview features |
+| [CA2255](quality-rules/ca2255.md) | Usage | Warning | .NET 6 | The `ModuleInitializer` attribute should not be used in libraries |
+| [CA2256](quality-rules/ca2256.md) | Usage | Warning | .NET 6 | All members declared in parent interfaces must have an implementation in a `DynamicInterfaceCastableImplementation`-attributed interface |
+| [CA2257](quality-rules/ca2257.md) | Usage | Warning | .NET 6 | Members defined on an interface with the `DynamicInterfaceCastableImplementationAttribute` should be `static` |
+| [CA2258](quality-rules/ca2258.md) | Usage | Warning | .NET 6 | Providing a `DynamicInterfaceCastableImplementation` interface in Visual Basic is unsupported |
+| [CA2259](quality-rules/ca2259.md) | Usage | Warning | .NET 7 | `ThreadStatic` only affects static fields |
+| [CA2260](quality-rules/ca2260.md) | Usage | Warning | .NET 7 | Use correct type parameter |
+| [CA2261](quality-rules/ca2261.md) | Usage | Warning | .NET 8 | Do not use `ConfigureAwaitOptions.SuppressThrowing` with `Task` |
+| [CA2264](quality-rules/ca2264.md) | Usage | Warning | .NET 9 | Do not pass a non-nullable value to `ArgumentNullException.ThrowIfNull` |
+| [CA2265](quality-rules/ca2265.md) | Usage | Warning | .NET 9 | Do not compare `Span` to `null` or `default` |
+
# [.NET 9](#tab/net-9)
The following rules are enabled, by default, as errors or warnings in .NET 9. Additional rules are enabled as suggestions.
@@ -89,38 +124,11 @@ The following rules are enabled, by default, as errors or warnings in .NET 8. Ad
| [CA2260](quality-rules/ca2260.md) | Usage | Warning | .NET 7 | Use correct type parameter |
| [CA2261](quality-rules/ca2261.md) | Usage | Warning | .NET 8 | Do not use `ConfigureAwaitOptions.SuppressThrowing` with `Task` |
-# [.NET 7](#tab/net-7)
-
-The following rules are enabled, by default, as errors or warnings in .NET 7. Additional rules are enabled as suggestions.
-
-| Diagnostic ID | Category | Severity | Description |
-| - | - | - | - |
-| [CA1416](quality-rules/ca1416.md) | Interoperability | Warning | Validate platform compatibility |
-| [CA1417](quality-rules/ca1417.md) | Interoperability | Warning | Do not use `OutAttribute` on string parameters for P/Invokes |
-| [CA1418](quality-rules/ca1418.md) | Interoperability | Warning | Use valid platform string |
-| [CA1420](quality-rules/ca1420.md) | Interoperability | Warning | Using features that require runtime marshalling when it's disabled will result in run-time exceptions |
-| [CA1422](quality-rules/ca1422.md) | Interoperability | Warning | Validate platform compatibility |
-| [CA1831](quality-rules/ca1831.md) | Performance | Warning | Use `AsSpan` instead of range-based indexers for string when appropriate |
-| [CA2013](quality-rules/ca2013.md) | Reliability | Warning | Do not use `ReferenceEquals` with value types |
-| [CA2014](quality-rules/ca2014.md) | Reliability | Warning | Do not use `stackalloc` in loops |
-| [CA2015](quality-rules/ca2015.md) | Reliability | Warning | Do not define finalizers for types derived from |
-| [CA2017](quality-rules/ca2017.md) | Reliability | Warning | Parameter count mismatch |
-| [CA2018](quality-rules/ca2018.md) | Reliability | Warning | The `count` argument to `Buffer.BlockCopy` should specify the number of bytes to copy |
-| [CA2200](quality-rules/ca2200.md) | Usage | Warning | Rethrow to preserve stack details |
-| [CA2247](quality-rules/ca2247.md) | Usage | Warning | Argument passed to `TaskCompletionSource` constructor should be enum instead of |
-| [CA2252](quality-rules/ca2252.md) | Usage | Error | Opt in to preview features |
-| [CA2255](quality-rules/ca2255.md) | Usage | Warning | The `ModuleInitializer` attribute should not be used in libraries |
-| [CA2256](quality-rules/ca2256.md) | Usage | Warning | All members declared in parent interfaces must have an implementation in a `DynamicInterfaceCastableImplementation`-attributed interface |
-| [CA2257](quality-rules/ca2257.md) | Usage | Warning | Members defined on an interface with the `DynamicInterfaceCastableImplementationAttribute` should be `static` |
-| [CA2258](quality-rules/ca2258.md) | Usage | Warning | Providing a `DynamicInterfaceCastableImplementation` interface in Visual Basic is unsupported |
-| [CA2259](quality-rules/ca2259.md) | Usage | Warning | `ThreadStatic` only affects static fields |
-| [CA2260](quality-rules/ca2260.md) | Usage | Warning | Use correct type parameter |
-
---
You can change the severity of these rules to disable them or elevate them to errors. You can also [enable more rules](#enable-additional-rules).
-- For a list of rules that are included with each .NET SDK version, see [Analyzer releases](https://github.com/dotnet/roslyn-analyzers/blob/main/src/NetAnalyzers/Core/AnalyzerReleases.Shipped.md).
+- For a list of rules that are included with each .NET SDK version, see [Analyzer releases](https://github.com/dotnet/sdk/blob/main/src/Microsoft.CodeAnalysis.NetAnalyzers/src/Microsoft.CodeAnalysis.NetAnalyzers/AnalyzerReleases.Shipped.md).
- For a list of all the code quality rules, see [Code quality rules](quality-rules/index.md).
### Enable additional rules
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1000.md b/docs/fundamentals/code-analysis/quality-rules/ca1000.md
index 93411c2d92505..869a39bebcce7 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1000.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1000.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Do not declare static members on generic types |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1001.md b/docs/fundamentals/code-analysis/quality-rules/ca1001.md
index 77597421fdc8d..22bcf7dd4621b 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1001.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1001.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Types that own disposable fields should be disposable |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking - If the type is not visible outside the assembly.
Breaking - If the type is visible outside the assembly. |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1002.md b/docs/fundamentals/code-analysis/quality-rules/ca1002.md
index 2cbd1731aa77d..a6bc97a3d413c 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1002.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1002.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Do not expose generic lists |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1003.md b/docs/fundamentals/code-analysis/quality-rules/ca1003.md
index 8c4a52bb43ed1..a69694a871ffb 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1003.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1003.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Use generic event handler instances |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1005.md b/docs/fundamentals/code-analysis/quality-rules/ca1005.md
index 9a5a466bf55bb..2b8b2fe39d3c0 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1005.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1005.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Avoid excessive parameters on generic types |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1008.md b/docs/fundamentals/code-analysis/quality-rules/ca1008.md
index 18ae0c97a276b..2dc3349b4fdfb 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1008.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1008.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Enums should have zero value |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking - When you're prompted to add a `None` value to a non-flag enumeration. Breaking - When you're prompted to rename or remove any enumeration values. |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1010.md b/docs/fundamentals/code-analysis/quality-rules/ca1010.md
index cbab27d88eeb0..37db75defa653 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1010.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1010.md
@@ -21,7 +21,7 @@ ms.author: gewarren
| **Title** | Collections should implement generic interface |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1012.md b/docs/fundamentals/code-analysis/quality-rules/ca1012.md
index d88374c4a577a..2a24d8a1ccc1d 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1012.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1012.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Abstract types should not have public constructors |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1014.md b/docs/fundamentals/code-analysis/quality-rules/ca1014.md
index 414300048d179..cf8ef8df8f27b 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1014.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1014.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Mark assemblies with CLSCompliantAttribute |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1016.md b/docs/fundamentals/code-analysis/quality-rules/ca1016.md
index f227814abd39d..d962407225a29 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1016.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1016.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Mark assemblies with AssemblyVersionAttribute |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1017.md b/docs/fundamentals/code-analysis/quality-rules/ca1017.md
index 615857bf8d92d..ec10576bc5946 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1017.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1017.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Mark assemblies with ComVisibleAttribute |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1018.md b/docs/fundamentals/code-analysis/quality-rules/ca1018.md
index fea074ebbe5ce..6e8e3c7fb91b9 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1018.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1018.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Mark attributes with AttributeUsageAttribute |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1019.md b/docs/fundamentals/code-analysis/quality-rules/ca1019.md
index 1983b9beaea0a..4c7241d49b20d 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1019.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1019.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Define accessors for attribute arguments |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1021.md b/docs/fundamentals/code-analysis/quality-rules/ca1021.md
index 9a14bde679511..67568ab7532df 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1021.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1021.md
@@ -21,7 +21,7 @@ ms.author: gewarren
| **Title** | Avoid out parameters |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1024.md b/docs/fundamentals/code-analysis/quality-rules/ca1024.md
index e8fa701b931a2..1f8ba622444ca 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1024.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1024.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Use properties where appropriate |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1027.md b/docs/fundamentals/code-analysis/quality-rules/ca1027.md
index 26416d64b12c2..6bad875dc4dc1 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1027.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1027.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Mark enums with FlagsAttribute |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1028.md b/docs/fundamentals/code-analysis/quality-rules/ca1028.md
index d8a96446e32c7..7309c0ad24982 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1028.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1028.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Enum storage should be Int32 |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1030.md b/docs/fundamentals/code-analysis/quality-rules/ca1030.md
index eb362505f696b..072d328a0be96 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1030.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1030.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Use events where appropriate |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1031.md b/docs/fundamentals/code-analysis/quality-rules/ca1031.md
index 93a3c044207f5..ffde465e1c6ff 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1031.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1031.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Do not catch general exception types |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1032.md b/docs/fundamentals/code-analysis/quality-rules/ca1032.md
index 5f18e872706de..62633c016ad60 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1032.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1032.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Implement standard exception constructors |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1033.md b/docs/fundamentals/code-analysis/quality-rules/ca1033.md
index eb90e818a7a09..e35e5c764d794 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1033.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1033.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Interface methods should be callable by child types |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1034.md b/docs/fundamentals/code-analysis/quality-rules/ca1034.md
index 78f34c43a57b9..c9760e73db320 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1034.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1034.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Nested types should not be visible |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1036.md b/docs/fundamentals/code-analysis/quality-rules/ca1036.md
index bbcdb7a25dcf2..b52ec1a109352 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1036.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1036.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Override methods on comparable types |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1040.md b/docs/fundamentals/code-analysis/quality-rules/ca1040.md
index 295630c8b96b0..de41a7afd87bb 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1040.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1040.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Avoid empty interfaces |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1041.md b/docs/fundamentals/code-analysis/quality-rules/ca1041.md
index 7e83233151a4d..d2aab33bcfa8b 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1041.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1041.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Provide ObsoleteAttribute message |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1043.md b/docs/fundamentals/code-analysis/quality-rules/ca1043.md
index 5769cf6c875cc..22b5125e7b419 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1043.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1043.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Use integral or string argument for indexers |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1044.md b/docs/fundamentals/code-analysis/quality-rules/ca1044.md
index 727d9a39dd71a..18be8c0b47aff 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1044.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1044.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Properties should not be write only |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1045.md b/docs/fundamentals/code-analysis/quality-rules/ca1045.md
index c142af836bef6..96626c2375432 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1045.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1045.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Do not pass types by reference |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1046.md b/docs/fundamentals/code-analysis/quality-rules/ca1046.md
index 07a214db4fd61..39b83a8af11a5 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1046.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1046.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Do not overload operator equals on reference types |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1047.md b/docs/fundamentals/code-analysis/quality-rules/ca1047.md
index ea6fe877cd3df..193ac0cd55ab8 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1047.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1047.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Do not declare protected members in sealed types |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1050.md b/docs/fundamentals/code-analysis/quality-rules/ca1050.md
index 2a20f44ed18ae..b49a395085f9a 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1050.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1050.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Declare types in namespaces |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1051.md b/docs/fundamentals/code-analysis/quality-rules/ca1051.md
index 90e39357a6055..65b150da0020d 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1051.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1051.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Do not declare visible instance fields |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1052.md b/docs/fundamentals/code-analysis/quality-rules/ca1052.md
index e889aa8218dea..befa2ad449944 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1052.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1052.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Static holder types should be Static or NotInheritable |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1053.md b/docs/fundamentals/code-analysis/quality-rules/ca1053.md
index c2397ebdbe56f..dd61380ade4c3 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1053.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1053.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Static holder types should not have default constructors |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
> [!NOTE]
> Rule CA1053 only applies to legacy Visual Studio code analysis. In the .NET code-quality analyzers, it's combined into rule [CA1052: Static holder types should be Static or NotInheritable](ca1052.md).
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1054.md b/docs/fundamentals/code-analysis/quality-rules/ca1054.md
index 50bca12d233c1..50e0cf8548745 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1054.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1054.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | URI parameters should not be strings |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1055.md b/docs/fundamentals/code-analysis/quality-rules/ca1055.md
index 760ecb6f09206..f3bef1b11943b 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1055.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1055.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | URI return values should not be strings |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1056.md b/docs/fundamentals/code-analysis/quality-rules/ca1056.md
index abb9c52f5a713..502294de94107 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1056.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1056.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | URI properties should not be strings |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1058.md b/docs/fundamentals/code-analysis/quality-rules/ca1058.md
index 62063da3b87bd..af2d1abdbe6f7 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1058.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1058.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Types should not extend certain base types |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1060.md b/docs/fundamentals/code-analysis/quality-rules/ca1060.md
index 2343ec7b30d74..195ee1a780826 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1060.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1060.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Move P/Invokes to NativeMethods class |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1061.md b/docs/fundamentals/code-analysis/quality-rules/ca1061.md
index 77f6f9aebffa8..4ca6536fa3f37 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1061.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1061.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Do not hide base class methods |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1062.md b/docs/fundamentals/code-analysis/quality-rules/ca1062.md
index 214949d4c0f70..50b94b9010ec6 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1062.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1062.md
@@ -23,7 +23,7 @@ dev_langs:
| **Title** | Validate arguments of public methods |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1063.md b/docs/fundamentals/code-analysis/quality-rules/ca1063.md
index 9fe21a01d62cc..e6bc8ee1a4e1f 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1063.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1063.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Implement IDisposable correctly |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1064.md b/docs/fundamentals/code-analysis/quality-rules/ca1064.md
index 6bda3040d6ef9..405140eb5f435 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1064.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1064.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Exceptions should be public |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1065.md b/docs/fundamentals/code-analysis/quality-rules/ca1065.md
index 188c431189549..0326481ea57a6 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1065.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1065.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Do not raise exceptions in unexpected locations |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1066.md b/docs/fundamentals/code-analysis/quality-rules/ca1066.md
index a7c3860236d69..d49a162a6d5a5 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1066.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1066.md
@@ -17,7 +17,7 @@ ms.author: mavasani
| **Title** | Implement IEquatable when overriding Equals |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1067.md b/docs/fundamentals/code-analysis/quality-rules/ca1067.md
index afbca4223a5ff..0f99a1ee3c08d 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1067.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1067.md
@@ -17,7 +17,7 @@ ms.author: mavasani
| **Title** | Override Equals when implementing IEquatable |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1068.md b/docs/fundamentals/code-analysis/quality-rules/ca1068.md
index 101cb65e71328..3507ec242692f 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1068.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1068.md
@@ -19,7 +19,7 @@ ms.author: mavasani
| **Title** | CancellationToken parameters must come last |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1069.md b/docs/fundamentals/code-analysis/quality-rules/ca1069.md
index fe119dfbf97d0..3aec89aba048d 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1069.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1069.md
@@ -17,7 +17,7 @@ ms.author: mavasani
| **Title** | Enums should not have duplicate values |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1070.md b/docs/fundamentals/code-analysis/quality-rules/ca1070.md
index 5aebf46ef2237..b3141d4fabe04 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1070.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1070.md
@@ -17,7 +17,7 @@ ms.author: mavasani
| **Title** | Do not declare event fields as virtual |
| **Category** | [Design](design-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1200.md b/docs/fundamentals/code-analysis/quality-rules/ca1200.md
index e6f3963b4a3b6..8d6d99473f7b4 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1200.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1200.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Avoid using cref tags with a prefix |
| **Category** | [Documentation](documentation-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1303.md b/docs/fundamentals/code-analysis/quality-rules/ca1303.md
index 1e2ac4aa72428..585b3a9c75e80 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1303.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1303.md
@@ -23,7 +23,7 @@ dev_langs:
| **Title** | Do not pass literals as localized parameters |
| **Category** | [Globalization](globalization-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1304.md b/docs/fundamentals/code-analysis/quality-rules/ca1304.md
index e3568f5496c14..6c919cce39922 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1304.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1304.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Specify CultureInfo |
| **Category** | [Globalization](globalization-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1305.md b/docs/fundamentals/code-analysis/quality-rules/ca1305.md
index 69124ffef6603..36eed065ad27e 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1305.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1305.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Specify IFormatProvider |
| **Category** | [Globalization](globalization-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1307.md b/docs/fundamentals/code-analysis/quality-rules/ca1307.md
index 1a16e87dbf9d6..243a188a26107 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1307.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1307.md
@@ -21,7 +21,7 @@ ms.author: gewarren
| **Title** | Specify StringComparison for clarity |
| **Category** | [Globalization](globalization-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1308.md b/docs/fundamentals/code-analysis/quality-rules/ca1308.md
index da35811e87521..e69126e9ad8e2 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1308.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1308.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Normalize strings to uppercase |
| **Category** | [Globalization](globalization-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1309.md b/docs/fundamentals/code-analysis/quality-rules/ca1309.md
index 339bb000aa10e..950aedf94d68c 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1309.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1309.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Use ordinal StringComparison |
| **Category** | [Globalization](globalization-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1310.md b/docs/fundamentals/code-analysis/quality-rules/ca1310.md
index e003ed99b5eb7..506e5ff46dcb7 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1310.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1310.md
@@ -21,7 +21,7 @@ ms.author: gewarren
| **Title** | Specify StringComparison for correctness |
| **Category** | [Globalization](globalization-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1311.md b/docs/fundamentals/code-analysis/quality-rules/ca1311.md
index a9236a8431e94..9e726db4d9ba3 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1311.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1311.md
@@ -19,7 +19,7 @@ dev_langs:
| **Title** | Specify a culture or use an invariant version |
| **Category** | [Globalization](globalization-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1401.md b/docs/fundamentals/code-analysis/quality-rules/ca1401.md
index 7b937bd54f0b1..5afc79763028e 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1401.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1401.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | P/Invokes should not be visible |
| **Category** | [Interoperability](interoperability-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1416.md b/docs/fundamentals/code-analysis/quality-rules/ca1416.md
index 4505a2aef59e9..02138466bc75d 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1416.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1416.md
@@ -18,7 +18,7 @@ author: buyaa-n
| **Title** | Validate platform compatibility |
| **Category** | [Interoperability](interoperability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1417.md b/docs/fundamentals/code-analysis/quality-rules/ca1417.md
index 83dd3da083a5b..a0765b5b0bf79 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1417.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1417.md
@@ -19,7 +19,7 @@ ms.author: elfung
| **Title** | Do not use `OutAttribute` on string parameters for P/Invokes |
| **Category** | [Interoperability](interoperability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1418.md b/docs/fundamentals/code-analysis/quality-rules/ca1418.md
index c99dd6247dfb6..28896b1e7f193 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1418.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1418.md
@@ -18,7 +18,7 @@ author: buyaa-n
| **Title** | Validate platform compatibility |
| **Category** | [Interoperability](interoperability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1419.md b/docs/fundamentals/code-analysis/quality-rules/ca1419.md
index 3bd4551617d05..a18be2d35058a 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1419.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1419.md
@@ -18,7 +18,7 @@ author: Youssef1313
| **Title** | Provide a parameterless constructor that is as visible as the containing type for concrete types derived from 'System.Runtime.InteropServices.SafeHandle' |
| **Category** | [Interoperability](interoperability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1420.md b/docs/fundamentals/code-analysis/quality-rules/ca1420.md
index 0f5a876a5c5fc..6c4d78bdfb199 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1420.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1420.md
@@ -18,7 +18,7 @@ dev_langs:
| **Title** | Property, type, or attribute requires runtime marshalling |
| **Category** | [Interoperability](interoperability-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1421.md b/docs/fundamentals/code-analysis/quality-rules/ca1421.md
index e53cc91ea14b8..f435929a83f2d 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1421.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1421.md
@@ -19,7 +19,7 @@ dev_langs:
| **Title** | Method uses runtime marshalling when DisableRuntimeMarshallingAttribute is applied |
| **Category** | [Interoperability](interoperability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1422.md b/docs/fundamentals/code-analysis/quality-rules/ca1422.md
index 6b0d134e25e1a..c3169a325f48e 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1422.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1422.md
@@ -18,7 +18,7 @@ dev_langs:
| **Title** | Validate platform compatibility - obsoleted APIs |
| **Category** | [Interoperability](interoperability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1501.md b/docs/fundamentals/code-analysis/quality-rules/ca1501.md
index 70147ef0ee1e3..77854e7bf8549 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1501.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1501.md
@@ -23,7 +23,7 @@ dev_langs:
| **Category** | [Maintainability](maintainability-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
| **Default threshold** | 5 |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1502.md b/docs/fundamentals/code-analysis/quality-rules/ca1502.md
index 548ed09137655..f6bc664c29b4c 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1502.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1502.md
@@ -23,7 +23,7 @@ dev_langs:
| **Category** | [Maintainability](maintainability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
| **Default threshold** | 25 |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1505.md b/docs/fundamentals/code-analysis/quality-rules/ca1505.md
index 117445fd6141d..b45b331b5c083 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1505.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1505.md
@@ -20,7 +20,7 @@ ms.author: gewarren
| **Category** | [Maintainability](maintainability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
| **Default threshold** | 10 |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1506.md b/docs/fundamentals/code-analysis/quality-rules/ca1506.md
index c1eb23ffee0d4..226698afa92f3 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1506.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1506.md
@@ -18,7 +18,7 @@ helpviewer_keywords:
| **Category** | [Maintainability](maintainability-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
| **Default threshold** | Types: 95 Other symbols: 40 |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1507.md b/docs/fundamentals/code-analysis/quality-rules/ca1507.md
index b285af47830df..459d65d0f46a3 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1507.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1507.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Use `nameof` in place of string |
| **Category** | [Maintainability](maintainability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1508.md b/docs/fundamentals/code-analysis/quality-rules/ca1508.md
index 09ba79b23b45c..fa8698fe851f8 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1508.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1508.md
@@ -19,7 +19,7 @@ ms.author: mavasani
| **Title** | Avoid dead conditional code |
| **Category** | [Maintainability](maintainability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1509.md b/docs/fundamentals/code-analysis/quality-rules/ca1509.md
index dd1846f946d22..f33e542f2e9b8 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1509.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1509.md
@@ -19,7 +19,7 @@ ms.author: mavasani
| **Title** | Invalid entry in code metrics configuration file |
| **Category** | [Maintainability](maintainability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1510.md b/docs/fundamentals/code-analysis/quality-rules/ca1510.md
index 57a888c75fa4c..126defcc61d68 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1510.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1510.md
@@ -15,7 +15,7 @@ helpviewer_keywords:
| **Title** | Use ArgumentNullException throw helper |
| **Category** | [Maintainability](maintainability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-Breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1511.md b/docs/fundamentals/code-analysis/quality-rules/ca1511.md
index ae9c875cd1cc4..5d2e2fce5d8fb 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1511.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1511.md
@@ -15,7 +15,7 @@ helpviewer_keywords:
| **Title** | Use ArgumentException throw helper |
| **Category** | [Maintainability](maintainability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-Breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1512.md b/docs/fundamentals/code-analysis/quality-rules/ca1512.md
index e076d5fb59926..16334716bdbac 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1512.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1512.md
@@ -15,7 +15,7 @@ helpviewer_keywords:
| **Title** | Use ArgumentOutOfRangeException throw helper |
| **Category** | [Maintainability](maintainability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-Breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1513.md b/docs/fundamentals/code-analysis/quality-rules/ca1513.md
index 68f7509949275..70069fb706c23 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1513.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1513.md
@@ -15,7 +15,7 @@ helpviewer_keywords:
| **Title** | Use ObjectDisposedException throw helper |
| **Category** | [Maintainability](maintainability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-Breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1514.md b/docs/fundamentals/code-analysis/quality-rules/ca1514.md
index 573b69492ad88..2419a6cd323a7 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1514.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1514.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Avoid redundant length argument |
| **Category** | [Maintainability](maintainability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1515.md b/docs/fundamentals/code-analysis/quality-rules/ca1515.md
index f1d6cecba0085..25b79373e1b00 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1515.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1515.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Consider making public types internal |
| **Category** | [Maintainability](maintainability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1516.md b/docs/fundamentals/code-analysis/quality-rules/ca1516.md
index da17eb0255453..469616e942d96 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1516.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1516.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Use cross-platform intrinsics |
| **Category** | [Maintainability](maintainability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1700.md b/docs/fundamentals/code-analysis/quality-rules/ca1700.md
index cf40d421715a4..741cd745f9469 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1700.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1700.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Do not name enum values 'Reserved' |
| **Category** | [Naming](naming-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1707.md b/docs/fundamentals/code-analysis/quality-rules/ca1707.md
index 7098b1d148aaa..e7a029297dfc0 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1707.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1707.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Identifiers should not contain underscores |
| **Category** | [Naming](naming-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking - when raised on assemblies
Non-breaking - when raised on type parameters |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1708.md b/docs/fundamentals/code-analysis/quality-rules/ca1708.md
index f50c82ecb8889..66d125c39d74d 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1708.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1708.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Identifiers should differ by more than case |
| **Category** | [Naming](naming-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1710.md b/docs/fundamentals/code-analysis/quality-rules/ca1710.md
index ce8458edd620f..176c113aececf 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1710.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1710.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Identifiers should have correct suffix |
| **Category** | [Naming](naming-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1711.md b/docs/fundamentals/code-analysis/quality-rules/ca1711.md
index 3e0e67fb6a4fb..2daaa8a3ff1cf 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1711.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1711.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Identifiers should not have incorrect suffix |
| **Category** | [Naming](naming-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1712.md b/docs/fundamentals/code-analysis/quality-rules/ca1712.md
index 207f3b3365724..1ed480ef514f1 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1712.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1712.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Do not prefix enum values with type name |
| **Category** | [Naming](naming-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1713.md b/docs/fundamentals/code-analysis/quality-rules/ca1713.md
index 618c2b3d29354..dc93afc585a45 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1713.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1713.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Events should not have before or after prefix |
| **Category** | [Naming](naming-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1714.md b/docs/fundamentals/code-analysis/quality-rules/ca1714.md
index c8067803ef1e5..319a841cb0638 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1714.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1714.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Flags enums should have plural names |
| **Category** | [Naming](naming-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1715.md b/docs/fundamentals/code-analysis/quality-rules/ca1715.md
index 88e27e9c63d23..279df0b7effce 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1715.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1715.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Identifiers should have correct prefix |
| **Category** | [Naming](naming-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking - when fired on interfaces.
Non-breaking - when raised on generic type parameters. |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1716.md b/docs/fundamentals/code-analysis/quality-rules/ca1716.md
index 992a6eecd9132..b2f7ae9efbd7f 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1716.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1716.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Identifiers should not match keywords |
| **Category** | [Naming](naming-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1717.md b/docs/fundamentals/code-analysis/quality-rules/ca1717.md
index 2509a57814b58..f7b084ea6c4ba 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1717.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1717.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Only FlagsAttribute enums should have plural names |
| **Category** | [Naming](naming-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1720.md b/docs/fundamentals/code-analysis/quality-rules/ca1720.md
index 0378767cb9528..c745b0cca1243 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1720.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1720.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Identifiers should not contain type names |
| **Category** | [Naming](naming-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1721.md b/docs/fundamentals/code-analysis/quality-rules/ca1721.md
index 544945ddf4944..8a3c7af05103b 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1721.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1721.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Property names should not match get methods |
| **Category** | [Naming](naming-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1724.md b/docs/fundamentals/code-analysis/quality-rules/ca1724.md
index 4dde064ded58c..d4a146ed1ed37 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1724.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1724.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Type names should not match namespaces |
| **Category** | [Naming](naming-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1725.md b/docs/fundamentals/code-analysis/quality-rules/ca1725.md
index 3ef7976b6528a..90f4151a96a7e 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1725.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1725.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Parameter names should match base declaration |
| **Category** | [Naming](naming-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1727.md b/docs/fundamentals/code-analysis/quality-rules/ca1727.md
index 5a56ec4d59c9e..03bb1200970e6 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1727.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1727.md
@@ -20,7 +20,7 @@ dev_langs:
| **Title** | Use PascalCase for named placeholders |
| **Category** | [Naming](naming-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1801.md b/docs/fundamentals/code-analysis/quality-rules/ca1801.md
index 24064becfac01..1a48c1d74c9c2 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1801.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1801.md
@@ -20,7 +20,7 @@ ms.author: gewarren
| **Title** | Review unused parameters |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking - If the member is not visible outside the assembly, regardless of the change you make.
Non-breaking - If you change the member to use the parameter within its body.
Breaking - If you remove the parameter and it is visible outside the assembly. |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1802.md b/docs/fundamentals/code-analysis/quality-rules/ca1802.md
index f61ab048a9dd8..a4d8f8e38600f 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1802.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1802.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Use Literals Where Appropriate |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1805.md b/docs/fundamentals/code-analysis/quality-rules/ca1805.md
index aa4154019458a..88ff2485674fe 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1805.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1805.md
@@ -19,7 +19,7 @@ ms.author: stoub
| **Title** | Do not initialize unnecessarily |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1806.md b/docs/fundamentals/code-analysis/quality-rules/ca1806.md
index 91163cad653d8..f14da0302e6f7 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1806.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1806.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Do not ignore method results |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1810.md b/docs/fundamentals/code-analysis/quality-rules/ca1810.md
index 49d27a37bbbc9..e16c71172e671 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1810.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1810.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Initialize reference type static fields inline |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1812.md b/docs/fundamentals/code-analysis/quality-rules/ca1812.md
index e2862bc883b54..c3e5c8087e3aa 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1812.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1812.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Avoid uninstantiated internal classes |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1813.md b/docs/fundamentals/code-analysis/quality-rules/ca1813.md
index 0beb8560e4785..c631fc401fae5 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1813.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1813.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Avoid unsealed attributes |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1814.md b/docs/fundamentals/code-analysis/quality-rules/ca1814.md
index d2c6171297532..7e56b38ecdec3 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1814.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1814.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Prefer jagged arrays over multidimensional |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1815.md b/docs/fundamentals/code-analysis/quality-rules/ca1815.md
index 62e43d270ec2e..14313d64f5577 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1815.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1815.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Override equals and operator equals on value types |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1816.md b/docs/fundamentals/code-analysis/quality-rules/ca1816.md
index 1e8d6d9a9530e..491a29bb253b4 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1816.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1816.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Call GC.SuppressFinalize correctly |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1819.md b/docs/fundamentals/code-analysis/quality-rules/ca1819.md
index c208c7ca47235..3bb5e0c0c91d4 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1819.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1819.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Properties should not return arrays |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1820.md b/docs/fundamentals/code-analysis/quality-rules/ca1820.md
index dfb5b4a976b9a..22f109a754d59 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1820.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1820.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Test for empty strings using string length |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1821.md b/docs/fundamentals/code-analysis/quality-rules/ca1821.md
index e0bcfd0b9c184..2e29d1e28a625 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1821.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1821.md
@@ -18,7 +18,7 @@ ms.author: gewarren
| **Title** | Remove empty finalizers |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1822.md b/docs/fundamentals/code-analysis/quality-rules/ca1822.md
index 5091b39f79a92..02470374db88f 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1822.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1822.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Mark members as static |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking - If the member is not visible outside the assembly, regardless of the change you make.
Non-breaking - If you just change the member to an instance member with the `this` keyword.
Breaking - If you change the member from an instance member to a static member and it is visible outside the assembly. |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1823.md b/docs/fundamentals/code-analysis/quality-rules/ca1823.md
index 9b2b0afeb05dc..c06d047c8b48a 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1823.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1823.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Avoid unused private fields |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1824.md b/docs/fundamentals/code-analysis/quality-rules/ca1824.md
index fc1fd33cb59c1..8d258683763b4 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1824.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1824.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Mark assemblies with NeutralResourcesLanguageAttribute |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1825.md b/docs/fundamentals/code-analysis/quality-rules/ca1825.md
index 4250ce33aee59..3596a541522e6 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1825.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1825.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Avoid zero-length array allocations |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1826.md b/docs/fundamentals/code-analysis/quality-rules/ca1826.md
index 862a7977825b4..7119a6b79650d 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1826.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1826.md
@@ -19,7 +19,7 @@ ms.author: mavasani
| **Title** | Use property instead of Linq Enumerable method |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1827.md b/docs/fundamentals/code-analysis/quality-rules/ca1827.md
index acd0bfa68463a..49b53b3199707 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1827.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1827.md
@@ -19,7 +19,7 @@ ms.author: mavasani
| **Title** | Do not use Count()/LongCount() when Any() can be used |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1828.md b/docs/fundamentals/code-analysis/quality-rules/ca1828.md
index fbd009ba405d0..bd183e97af4ca 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1828.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1828.md
@@ -19,7 +19,7 @@ ms.author: mavasani
| **Title** | Do not use CountAsync/LongCountAsync when AnyAsync can be used |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1829.md b/docs/fundamentals/code-analysis/quality-rules/ca1829.md
index fcd58a719bcb9..9b466d4cf130e 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1829.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1829.md
@@ -19,7 +19,7 @@ ms.author: mavasani
| **Title** | Use Length/Count property instead of Enumerable.Count method |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1830.md b/docs/fundamentals/code-analysis/quality-rules/ca1830.md
index 1c616f1f6847d..a38ab3cfa3329 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1830.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1830.md
@@ -19,7 +19,7 @@ ms.author: stoub
| **Title** | Prefer strongly-typed Append and Insert method overloads on StringBuilder |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1831.md b/docs/fundamentals/code-analysis/quality-rules/ca1831.md
index 30c737f373fa1..9bf0dc55b20e9 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1831.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1831.md
@@ -18,7 +18,7 @@ author: buyaa-n
| **Title** | Use AsSpan instead of Range-based indexers for string when appropriate |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1832.md b/docs/fundamentals/code-analysis/quality-rules/ca1832.md
index 6b80f9ed620f5..b349629c9e15e 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1832.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1832.md
@@ -18,7 +18,7 @@ author: buyaa-n
| **Title** | Use AsSpan or AsMemory instead of Range-based indexers for getting ReadOnlySpan or ReadOnlyMemory portion of an array |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1833.md b/docs/fundamentals/code-analysis/quality-rules/ca1833.md
index e86e131cae74a..5b415258b52a2 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1833.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1833.md
@@ -18,7 +18,7 @@ author: buyaa-n
| **Title** | Use AsSpan or AsMemory instead of Range-based indexers for getting Span or Memory portion of an array |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1834.md b/docs/fundamentals/code-analysis/quality-rules/ca1834.md
index 1aff0ff4e6ce6..503cb317c2873 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1834.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1834.md
@@ -18,7 +18,7 @@ author: pgovind
| **Title** | Use StringBuilder.Append(char) for single character strings |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1835.md b/docs/fundamentals/code-analysis/quality-rules/ca1835.md
index a2b7bd37d8bbc..0892a8616c11e 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1835.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1835.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Prefer the memory-based overloads of ReadAsync/WriteAsync methods in stream-based classes |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1836.md b/docs/fundamentals/code-analysis/quality-rules/ca1836.md
index bcc6991603423..e7ba6bf926ab5 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1836.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1836.md
@@ -19,7 +19,7 @@ ms.author: dacantu
| **Title** | Prefer IsEmpty over Count when available |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1837.md b/docs/fundamentals/code-analysis/quality-rules/ca1837.md
index 007c661c28a8f..313f46f02d964 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1837.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1837.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Use Environment.ProcessId instead of Process.GetCurrentProcess().Id |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1838.md b/docs/fundamentals/code-analysis/quality-rules/ca1838.md
index c9f31b1116d47..f7aa0814ce755 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1838.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1838.md
@@ -20,7 +20,7 @@ ms.author: elfung
| **Title** | Avoid `StringBuilder` parameters for P/Invokes |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1839.md b/docs/fundamentals/code-analysis/quality-rules/ca1839.md
index e68622390d884..e19c94ffe63ef 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1839.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1839.md
@@ -20,7 +20,7 @@ dev_langs:
| **Title** | Use Environment.ProcessPath instead of Process.GetCurrentProcess().MainModule.FileName |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1840.md b/docs/fundamentals/code-analysis/quality-rules/ca1840.md
index 57c3a248bd1a0..cf6b7d02caec6 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1840.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1840.md
@@ -20,7 +20,7 @@ dev_langs:
| **Title** | Use Environment.CurrentManagedThreadId instead of Thread.CurrentThread.ManagedThreadId |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1841.md b/docs/fundamentals/code-analysis/quality-rules/ca1841.md
index 2b741aafd115d..7ff16b044d690 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1841.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1841.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Prefer Dictionary Contains methods |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1842.md b/docs/fundamentals/code-analysis/quality-rules/ca1842.md
index e52c3ecbef523..e481bd5ab5ee2 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1842.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1842.md
@@ -18,7 +18,7 @@ author: Youssef1313
| **Title** | Do not use 'WhenAll' with a single task |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1843.md b/docs/fundamentals/code-analysis/quality-rules/ca1843.md
index cfebae7594177..6066779beba44 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1843.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1843.md
@@ -18,7 +18,7 @@ author: Youssef1313
| **Title** | Do not use 'WaitAll' with a single task |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1844.md b/docs/fundamentals/code-analysis/quality-rules/ca1844.md
index fe00b644cc012..87a1939d0e95a 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1844.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1844.md
@@ -20,7 +20,7 @@ dev_langs:
| **Title** | Provide memory-based overrides of async methods when subclassing 'Stream' |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1845.md b/docs/fundamentals/code-analysis/quality-rules/ca1845.md
index c9483e48cca27..29f6872c1dedf 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1845.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1845.md
@@ -20,7 +20,7 @@ dev_langs:
| **Title** | Use span-based 'string.Concat' |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1846.md b/docs/fundamentals/code-analysis/quality-rules/ca1846.md
index 8878fa04c181d..98f3183d9f773 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1846.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1846.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Prefer `AsSpan` over `Substring` |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1847.md b/docs/fundamentals/code-analysis/quality-rules/ca1847.md
index 77802d72e7097..8db3654d4097e 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1847.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1847.md
@@ -20,7 +20,7 @@ dev_langs:
| **Title** | Use String.Contains(char) instead of String.Contains(string) with single characters |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1848.md b/docs/fundamentals/code-analysis/quality-rules/ca1848.md
index ced058485687d..e43d6d1c1b525 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1848.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1848.md
@@ -18,7 +18,7 @@ author: Youssef1313
| **Title** | Use the LoggerMessage delegates |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1849.md b/docs/fundamentals/code-analysis/quality-rules/ca1849.md
index 1344b0391fd87..a4ed7d54bacfe 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1849.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1849.md
@@ -18,7 +18,7 @@ author: mahdiva
| **Title** | Call async methods when in an async method |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1850.md b/docs/fundamentals/code-analysis/quality-rules/ca1850.md
index 40b7781723fb6..1354b181c8b8f 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1850.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1850.md
@@ -20,7 +20,7 @@ dev_langs:
| **Title** | Prefer static `HashData` method over `ComputeHash` |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1851.md b/docs/fundamentals/code-analysis/quality-rules/ca1851.md
index 6d3d8015612de..d279a64911b71 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1851.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1851.md
@@ -20,7 +20,7 @@ dev_langs:
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
| **Introduced version** | .NET 7 |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1852.md b/docs/fundamentals/code-analysis/quality-rules/ca1852.md
index 10e38f544fbca..589daf92722de 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1852.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1852.md
@@ -21,7 +21,7 @@ dev_langs:
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
| **Introduced version** | .NET 7 |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1853.md b/docs/fundamentals/code-analysis/quality-rules/ca1853.md
index 35bbabe06a48c..d4e07ad3bc2f8 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1853.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1853.md
@@ -21,7 +21,7 @@ dev_langs:
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
| **Introduced version** | .NET 7 |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1854.md b/docs/fundamentals/code-analysis/quality-rules/ca1854.md
index 0990e6bc23d2c..55d712f220fa5 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1854.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1854.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Prefer the `IDictionary.TryGetValue(TKey, out TValue)` method |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1855.md b/docs/fundamentals/code-analysis/quality-rules/ca1855.md
index e1f34f94364fa..e5247042d8ec9 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1855.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1855.md
@@ -19,7 +19,7 @@ dev_langs:
| **Title** | Use Span\.Clear() instead of Span\.Fill() |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1856.md b/docs/fundamentals/code-analysis/quality-rules/ca1856.md
index 4a9bbea093ca3..62a394b32a162 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1856.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1856.md
@@ -18,7 +18,7 @@ dev_langs:
| **Title** | Incorrect usage of ConstantExpected attribute |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As error |
+| **Enabled by default in .NET 10** | As error |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1857.md b/docs/fundamentals/code-analysis/quality-rules/ca1857.md
index ad462128eb196..0be3bf857af3e 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1857.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1857.md
@@ -18,7 +18,7 @@ dev_langs:
| **Title** | The parameter expects a constant for optimal performance |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1858.md b/docs/fundamentals/code-analysis/quality-rules/ca1858.md
index c6aaf4d543b0f..6eef9d9bf0f2b 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1858.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1858.md
@@ -20,7 +20,7 @@ dev_langs:
| **Title** | Use StartsWith instead of IndexOf |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1859.md b/docs/fundamentals/code-analysis/quality-rules/ca1859.md
index e30c771339245..2051031c7b4ac 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1859.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1859.md
@@ -18,7 +18,7 @@ helpviewer_keywords:
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
| **Introduced version** | .NET 8 |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1860.md b/docs/fundamentals/code-analysis/quality-rules/ca1860.md
index 30fdeb2764b19..1906a51397d81 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1860.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1860.md
@@ -20,7 +20,7 @@ dev_langs:
| **Title** | Avoid using 'Enumerable.Any()' extension method |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1861.md b/docs/fundamentals/code-analysis/quality-rules/ca1861.md
index 5fb0ec56cc9e1..0f94c263ac64a 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1861.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1861.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Avoid constant arrays as arguments |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1862.md b/docs/fundamentals/code-analysis/quality-rules/ca1862.md
index 73fb8717aecf5..cf870390482c5 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1862.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1862.md
@@ -19,7 +19,7 @@ dev_langs:
| **Title** | Use the 'StringComparison' method overloads to perform case-insensitive string comparisons |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1863.md b/docs/fundamentals/code-analysis/quality-rules/ca1863.md
index 6b3cd3fbd77ec..00cf030693d4a 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1863.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1863.md
@@ -16,7 +16,7 @@ helpviewer_keywords:
| **Title** | Use `CompositeFormat` |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1864.md b/docs/fundamentals/code-analysis/quality-rules/ca1864.md
index c94db3709c271..0863d139cef63 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1864.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1864.md
@@ -20,7 +20,7 @@ dev_langs:
| **Title** | Prefer the 'IDictionary.TryAdd(TKey, TValue)' method |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1865-ca1867.md b/docs/fundamentals/code-analysis/quality-rules/ca1865-ca1867.md
index 5ebff0edd5b1b..0b909132fecd5 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1865-ca1867.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1865-ca1867.md
@@ -24,7 +24,7 @@ author: mrahhal
| **Title** | Use 'string.Method(char)' instead of 'string.Method(string)' for string with single char |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | CA1865—As suggestion
CA1866—As suggestion
CA1867—No |
+| **Enabled by default in .NET 10** | CA1865—As suggestion
CA1866—As suggestion
CA1867—No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1868.md b/docs/fundamentals/code-analysis/quality-rules/ca1868.md
index 38e42e10ad286..9745360e6f0ab 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1868.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1868.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Unnecessary call to 'Contains' for sets |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1869.md b/docs/fundamentals/code-analysis/quality-rules/ca1869.md
index 5584818294fdb..f18522c8d2abd 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1869.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1869.md
@@ -19,7 +19,7 @@ ms.author: dacantu
| **Title** | Cache and reuse 'JsonSerializerOptions' instances |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1870.md b/docs/fundamentals/code-analysis/quality-rules/ca1870.md
index 23073690de7b1..1367e4f56ac1c 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1870.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1870.md
@@ -21,7 +21,7 @@ ms.author: mizupan
| **Title** | Use a cached 'SearchValues' instance |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1871.md b/docs/fundamentals/code-analysis/quality-rules/ca1871.md
index fa20cf51ab039..5f633424a38f7 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1871.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1871.md
@@ -20,7 +20,7 @@ author: CollinAlpert
| **Title** | Do not pass a nullable struct to 'ArgumentNullException.ThrowIfNull' |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As information |
+| **Enabled by default in .NET 10** | As information |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca1872.md b/docs/fundamentals/code-analysis/quality-rules/ca1872.md
index 16ee262a2ef65..5d3b6ca2bf000 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca1872.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca1872.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Prefer `Convert.ToHexString` and `Convert.ToHexStringLower` over call chains based on `BitConverter.ToString` |
| **Category** | [Performance](performance-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2000.md b/docs/fundamentals/code-analysis/quality-rules/ca2000.md
index 06f7a363ad113..bb8e1b3d15745 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2000.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2000.md
@@ -23,7 +23,7 @@ dev_langs:
| **Title** | Dispose objects before losing scope |
| **Category** | [Reliability](reliability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2002.md b/docs/fundamentals/code-analysis/quality-rules/ca2002.md
index 757aff411e7d5..031931cd53328 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2002.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2002.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Do not lock on objects with weak identity |
| **Category** | [Reliability](reliability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2007.md b/docs/fundamentals/code-analysis/quality-rules/ca2007.md
index f4dd1d7e58dd2..27013958a29e2 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2007.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2007.md
@@ -20,7 +20,7 @@ dev_langs:
| **Title** | Do not directly await a Task |
| **Category** | [Reliability](reliability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2008.md b/docs/fundamentals/code-analysis/quality-rules/ca2008.md
index fd0ead2ab8e15..14b8f88ef52ee 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2008.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2008.md
@@ -20,7 +20,7 @@ dev_langs:
| **Title** | Do not create tasks without passing a TaskScheduler |
| **Category** | [Reliability](reliability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2009.md b/docs/fundamentals/code-analysis/quality-rules/ca2009.md
index 8386a6fd28f8e..971c2175bc11a 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2009.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2009.md
@@ -18,7 +18,7 @@ ms.author: mavasani
| **Title** | Do not call ToImmutableCollection on an ImmutableCollection value |
| **Category** | [Reliability](reliability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2011.md b/docs/fundamentals/code-analysis/quality-rules/ca2011.md
index f56bd5db342f2..2bfd9f78f7f26 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2011.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2011.md
@@ -17,7 +17,7 @@ ms.author: mavasani
| **Title** | Do not assign property within its setter |
| **Category** | [Reliability](reliability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2012.md b/docs/fundamentals/code-analysis/quality-rules/ca2012.md
index 4109632a6e8aa..e6a510e14f3bf 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2012.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2012.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Use ValueTasks correctly |
| **Category** | [Reliability](reliability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2013.md b/docs/fundamentals/code-analysis/quality-rules/ca2013.md
index c872c30789ad2..97e0bb810326a 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2013.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2013.md
@@ -18,7 +18,7 @@ author: buyaa-n
| **Title** | Do not use ReferenceEquals with value types |
| **Category** | [Reliability](reliability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2014.md b/docs/fundamentals/code-analysis/quality-rules/ca2014.md
index 830bba5a67ce9..0bf13fa147af8 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2014.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2014.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Do not use stackalloc in loops |
| **Category** | [Reliability](reliability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2015.md b/docs/fundamentals/code-analysis/quality-rules/ca2015.md
index 716a83bdd530a..a667f67ee0556 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2015.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2015.md
@@ -18,7 +18,7 @@ author: buyaa-n
| **Title** | Do not define finalizers for types derived from MemoryManager<T> |
| **Category** | [Reliability](reliability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2016.md b/docs/fundamentals/code-analysis/quality-rules/ca2016.md
index dc6b6b18c36c4..8d55c46a16fe4 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2016.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2016.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Forward the CancellationToken parameter to methods that take one |
| **Category** | [Reliability](reliability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2017.md b/docs/fundamentals/code-analysis/quality-rules/ca2017.md
index 9ee3d60a013cb..c3f3ef6f8b021 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2017.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2017.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Parameter count mismatch |
| **Category** | [Reliability](reliability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2018.md b/docs/fundamentals/code-analysis/quality-rules/ca2018.md
index 639c2dd8cefcc..65f98180fba0a 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2018.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2018.md
@@ -18,7 +18,7 @@ author: mahdiva
| **Title** | The `count` argument to `Buffer.BlockCopy` should specify the number of bytes to copy |
| **Category** | [Reliability](reliability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2019.md b/docs/fundamentals/code-analysis/quality-rules/ca2019.md
index 03a515f41ddb7..f27cb26567812 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2019.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2019.md
@@ -18,7 +18,7 @@ dev_langs:
| **Title** | `ThreadStatic` fields should not use inline initialization |
| **Category** | [Reliability](reliability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2020.md b/docs/fundamentals/code-analysis/quality-rules/ca2020.md
index 7168c05220c52..e34946b25f4b4 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2020.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2020.md
@@ -18,7 +18,7 @@ author: buyaa-n
| **Title** | Prevent behavioral change caused by built-in operators of IntPtr/UIntPtr |
| **Category** | [Reliability](reliability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2021.md b/docs/fundamentals/code-analysis/quality-rules/ca2021.md
index 7f7476152f28f..760fed0164a45 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2021.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2021.md
@@ -18,7 +18,7 @@ dev_langs:
| **Title** | Don't call `Enumerable.Cast` or `Enumerable.OfType` with incompatible types |
| **Category** | [Reliability](reliability-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2022.md b/docs/fundamentals/code-analysis/quality-rules/ca2022.md
index 3207edcffe4fa..8b07bc90c4ef8 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2022.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2022.md
@@ -18,7 +18,7 @@ dev_langs:
| **Title** | Avoid inexact read with Stream.Read |
| **Category** | [Reliability](reliability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2023.md b/docs/fundamentals/code-analysis/quality-rules/ca2023.md
index 6cab8749d689e..b81d013cd5d08 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2023.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2023.md
@@ -22,7 +22,7 @@ ai-usage: ai-generated
| **Title** | Invalid braces in message template |
| **Category** | [Reliability](reliability-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2100.md b/docs/fundamentals/code-analysis/quality-rules/ca2100.md
index b8c91a24e89f5..c7c8ff0104cf5 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2100.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2100.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Review SQL queries for security vulnerabilities |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2101.md b/docs/fundamentals/code-analysis/quality-rules/ca2101.md
index cf1c455c57d5b..cb81338d1f2b5 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2101.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2101.md
@@ -20,7 +20,7 @@ dev_langs:
| **Title** | Specify marshalling for P/Invoke string arguments |
| **Category** | [Globalization](globalization-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2109.md b/docs/fundamentals/code-analysis/quality-rules/ca2109.md
index 993b95676b906..315fac2566a44 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2109.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2109.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Review visible event handlers |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2119.md b/docs/fundamentals/code-analysis/quality-rules/ca2119.md
index c6f46ca242ebf..460deb86d1b67 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2119.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2119.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Seal methods that satisfy private interfaces |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2153.md b/docs/fundamentals/code-analysis/quality-rules/ca2153.md
index 1f2844b38f252..11f0672f77de5 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2153.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2153.md
@@ -15,7 +15,7 @@ f1_keywords:
| **Title** | Avoid handling Corrupted State Exceptions |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2200.md b/docs/fundamentals/code-analysis/quality-rules/ca2200.md
index 6c11f32af103b..776377d150004 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2200.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2200.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Rethrow to preserve stack details |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2201.md b/docs/fundamentals/code-analysis/quality-rules/ca2201.md
index 4cd040f6adabf..9a07fd4a6365b 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2201.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2201.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Do not raise reserved exception types |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2207.md b/docs/fundamentals/code-analysis/quality-rules/ca2207.md
index 032125401fdc4..b88667fe9ee08 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2207.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2207.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Initialize value type static fields inline |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2208.md b/docs/fundamentals/code-analysis/quality-rules/ca2208.md
index a7311308b22d7..06d7714646c4d 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2208.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2208.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Instantiate argument exceptions correctly |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2211.md b/docs/fundamentals/code-analysis/quality-rules/ca2211.md
index 0d2b4f74e61ad..2a328307f2494 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2211.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2211.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Non-constant fields should not be visible |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2213.md b/docs/fundamentals/code-analysis/quality-rules/ca2213.md
index 124bc3a84088b..5dfb2d38e7346 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2213.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2213.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Disposable fields should be disposed |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2214.md b/docs/fundamentals/code-analysis/quality-rules/ca2214.md
index 3c4c246678394..3412e71842162 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2214.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2214.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Do not call overridable methods in constructors |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2215.md b/docs/fundamentals/code-analysis/quality-rules/ca2215.md
index 16aaee7cbea4f..ea993cecaa0b4 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2215.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2215.md
@@ -23,7 +23,7 @@ dev_langs:
| **Title** | Dispose methods should call base class dispose |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2216.md b/docs/fundamentals/code-analysis/quality-rules/ca2216.md
index 1cdccac8fc02b..566444f6473c7 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2216.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2216.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Disposable types should declare finalizer |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2217.md b/docs/fundamentals/code-analysis/quality-rules/ca2217.md
index 01182494ba083..8f806a1187e8b 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2217.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2217.md
@@ -22,7 +22,7 @@ ms.author: gewarren
| **Title** | Do not mark enums with FlagsAttribute |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2218.md b/docs/fundamentals/code-analysis/quality-rules/ca2218.md
index fe453b3a196d5..d712458c765cf 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2218.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2218.md
@@ -19,7 +19,7 @@ dev_langs:
| **Title** | Override GetHashCode on overriding Equals |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2219.md b/docs/fundamentals/code-analysis/quality-rules/ca2219.md
index 7efa0023a1582..507dc9b8158ed 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2219.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2219.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Do not raise exceptions in exception clauses |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking, Breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2224.md b/docs/fundamentals/code-analysis/quality-rules/ca2224.md
index dd7f2599e45ba..3a0b0cab954e7 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2224.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2224.md
@@ -18,7 +18,7 @@ helpviewer_keywords:
| **Title** | Override Equals on overloading operator equals |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2225.md b/docs/fundamentals/code-analysis/quality-rules/ca2225.md
index 69fd1fc7b6c89..b1c832123d2a2 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2225.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2225.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Operator overloads have named alternates |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2226.md b/docs/fundamentals/code-analysis/quality-rules/ca2226.md
index 189a0b134c2c6..a7135471b5ddc 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2226.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2226.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Operators should have symmetrical overloads |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2227.md b/docs/fundamentals/code-analysis/quality-rules/ca2227.md
index b9c9a3f1f06a9..6429b6c81edc4 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2227.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2227.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Collection properties should be read only |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2229.md b/docs/fundamentals/code-analysis/quality-rules/ca2229.md
index a50f185c5b3b7..563149ab9afbb 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2229.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2229.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Implement serialization constructors |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
> [!NOTE]
> This rule was removed in .NET 8 because it conflicts with [SYSLIB0051: Legacy serialization support APIs are obsolete](../../syslib-diagnostics/syslib0051.md).
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2231.md b/docs/fundamentals/code-analysis/quality-rules/ca2231.md
index 9d4dba6a1e1ec..6d02532b84b2e 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2231.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2231.md
@@ -23,7 +23,7 @@ dev_langs:
| **Title** | Overload operator equals on overriding ValueType.Equals |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2234.md b/docs/fundamentals/code-analysis/quality-rules/ca2234.md
index fbf4b31a24651..d46b91c439025 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2234.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2234.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Pass System.Uri objects instead of strings |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2235.md b/docs/fundamentals/code-analysis/quality-rules/ca2235.md
index 4263fab2efcb3..472a6b22cdfbb 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2235.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2235.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Mark all non-serializable fields |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2237.md b/docs/fundamentals/code-analysis/quality-rules/ca2237.md
index 5d3e13ff4f0ed..f6603790b5fb2 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2237.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2237.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Mark ISerializable types with SerializableAttribute |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2241.md b/docs/fundamentals/code-analysis/quality-rules/ca2241.md
index a3cd7239b5299..c5d34a073e216 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2241.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2241.md
@@ -23,7 +23,7 @@ dev_langs:
| **Title** | Provide correct arguments to formatting methods |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2242.md b/docs/fundamentals/code-analysis/quality-rules/ca2242.md
index 10a8577cc6476..12f55afd40ca4 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2242.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2242.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Test for NaN correctly |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2243.md b/docs/fundamentals/code-analysis/quality-rules/ca2243.md
index 2de29272d460e..183c65e3787b1 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2243.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2243.md
@@ -19,7 +19,7 @@ ms.author: gewarren
| **Title** | Attribute string literals should parse correctly |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2244.md b/docs/fundamentals/code-analysis/quality-rules/ca2244.md
index 75c0c48e3f9fc..618210414d210 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2244.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2244.md
@@ -17,7 +17,7 @@ ms.author: mavasani
| **Title** | Do not duplicate indexed element initializations |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2245.md b/docs/fundamentals/code-analysis/quality-rules/ca2245.md
index 448dc6a8618a1..850434eb496ee 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2245.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2245.md
@@ -17,7 +17,7 @@ ms.author: mavasani
| **Title** | Do not assign a property to itself |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2246.md b/docs/fundamentals/code-analysis/quality-rules/ca2246.md
index fd2555eeabc1d..6b16ccb15c2c9 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2246.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2246.md
@@ -17,7 +17,7 @@ ms.author: mavasani
| **Title** | Do not assign a symbol and its member in the same statement |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2247.md b/docs/fundamentals/code-analysis/quality-rules/ca2247.md
index 708931b0b8055..952394c6741a2 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2247.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2247.md
@@ -19,7 +19,7 @@ ms.author: stoub
| **Title** | Argument passed to TaskCompletionSource constructor should be TaskCreationOptions enum instead of TaskContinuationOptions enum |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2248.md b/docs/fundamentals/code-analysis/quality-rules/ca2248.md
index 9850a726e1bae..ac55e6defadd1 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2248.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2248.md
@@ -17,7 +17,7 @@ ms.author: mavasani
| **Title** | Provide correct enum argument to Enum.HasFlag |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2249.md b/docs/fundamentals/code-analysis/quality-rules/ca2249.md
index 5a0924a5ef91a..b2d55dbd71dfe 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2249.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2249.md
@@ -16,7 +16,7 @@ author: pgovind
| **Title** | Consider using String.Contains instead of String.IndexOf |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2250.md b/docs/fundamentals/code-analysis/quality-rules/ca2250.md
index 7696a967191c8..3f8268a9527b0 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2250.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2250.md
@@ -21,7 +21,7 @@ dev_langs:
| **Title** | Use `ThrowIfCancellationRequested` |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2251.md b/docs/fundamentals/code-analysis/quality-rules/ca2251.md
index 8e0c270a09ef4..c272a4c84fea4 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2251.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2251.md
@@ -18,7 +18,7 @@ author: NewellClark
| **Title** | Use `String.Equals` over `String.Compare` |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2252.md b/docs/fundamentals/code-analysis/quality-rules/ca2252.md
index 4ce7a14c30583..4f0539e35ec43 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2252.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2252.md
@@ -20,7 +20,7 @@ dev_langs:
| **Title** | Opt in to preview features before using them |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As error |
+| **Enabled by default in .NET 10** | As error |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2253.md b/docs/fundamentals/code-analysis/quality-rules/ca2253.md
index 65d4540c7d579..66a422b4d226a 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2253.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2253.md
@@ -20,7 +20,7 @@ dev_langs:
| **Title** | Named placeholders should not be numeric values |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2254.md b/docs/fundamentals/code-analysis/quality-rules/ca2254.md
index ed800bda2e70c..d5c7aa2127129 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2254.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2254.md
@@ -18,7 +18,7 @@ author: Youssef1313
| **Title** | Template should be a static expression |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2255.md b/docs/fundamentals/code-analysis/quality-rules/ca2255.md
index e487f948f511f..c4ccd903df772 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2255.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2255.md
@@ -18,7 +18,7 @@ author: jeffhandley
| **Title** | The `ModuleInitializer` attribute should not be used in libraries |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2256.md b/docs/fundamentals/code-analysis/quality-rules/ca2256.md
index ff224813e778b..dbdb2860d91c7 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2256.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2256.md
@@ -20,7 +20,7 @@ dev_langs:
| **Title** | All members declared in parent interfaces must have an implementation in a DynamicInterfaceCastableImplementation-attributed interface |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2257.md b/docs/fundamentals/code-analysis/quality-rules/ca2257.md
index 2233f188e1bd5..448ec562c9325 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2257.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2257.md
@@ -20,7 +20,7 @@ dev_langs:
| **Title** | Members defined on an interface with the 'DynamicInterfaceCastableImplementationAttribute' should be 'static' |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2258.md b/docs/fundamentals/code-analysis/quality-rules/ca2258.md
index 932688e1a8f65..619ae5cdfd3ef 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2258.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2258.md
@@ -18,7 +18,7 @@ author: Youssef1313
| **Title** | Providing a 'DynamicInterfaceCastableImplementation' interface in Visual Basic is unsupported |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2259.md b/docs/fundamentals/code-analysis/quality-rules/ca2259.md
index 7b442365f1d67..b1735381c9be9 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2259.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2259.md
@@ -18,7 +18,7 @@ dev_langs:
| **Title** | Ensure `ThreadStatic` is only used with static fields |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2260.md b/docs/fundamentals/code-analysis/quality-rules/ca2260.md
index 00c0ab6c63757..922c1679cfe6d 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2260.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2260.md
@@ -18,7 +18,7 @@ author: buyaa-n
| **Title** | Implement generic math interfaces correctly |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2261.md b/docs/fundamentals/code-analysis/quality-rules/ca2261.md
index f8ade3674e033..0a6d937e4ad65 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2261.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2261.md
@@ -15,7 +15,7 @@ helpviewer_keywords:
| **Title** | Do not use `ConfigureAwaitOptions.SuppressThrowing` with `Task` |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2262.md b/docs/fundamentals/code-analysis/quality-rules/ca2262.md
index 6fe76b9e71264..3d04a08de1ab6 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2262.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2262.md
@@ -18,7 +18,7 @@ dev_langs:
| **Title** | Set `MaxResponseHeadersLength` properly |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2263.md b/docs/fundamentals/code-analysis/quality-rules/ca2263.md
index 26031debfd7e5..75901bd124f54 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2263.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2263.md
@@ -22,7 +22,7 @@ dev_langs:
| **Title** | Prefer generic overload when type is known |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As suggestion |
+| **Enabled by default in .NET 10** | As suggestion |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2264.md b/docs/fundamentals/code-analysis/quality-rules/ca2264.md
index e07b8d0c5adab..7b065e3dc5ca6 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2264.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2264.md
@@ -18,7 +18,7 @@ dev_langs:
| **Title** | Do not pass a non-nullable value to `ArgumentNullException.ThrowIfNull` |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2265.md b/docs/fundamentals/code-analysis/quality-rules/ca2265.md
index 7256363015f85..6f23ff7445424 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2265.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2265.md
@@ -17,7 +17,7 @@ dev_langs:
| **Title** | Do not compare `Span` to `null` or `default` |
| **Category** | [Usage](usage-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | As warning |
+| **Enabled by default in .NET 10** | As warning |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2300.md b/docs/fundamentals/code-analysis/quality-rules/ca2300.md
index e8c7b7e576b4a..65de8ef7684dc 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2300.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2300.md
@@ -19,7 +19,7 @@ f1_keywords:
| **Title** | Do not use insecure deserializer BinaryFormatter |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2301.md b/docs/fundamentals/code-analysis/quality-rules/ca2301.md
index f77161bc03667..1068caab17127 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2301.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2301.md
@@ -19,7 +19,7 @@ f1_keywords:
| **Title** | Do not call BinaryFormatter.Deserialize without first setting BinaryFormatter.Binder |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2302.md b/docs/fundamentals/code-analysis/quality-rules/ca2302.md
index a2d924bd0defa..7dec7588c9cd3 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2302.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2302.md
@@ -19,7 +19,7 @@ f1_keywords:
| **Title** | Ensure BinaryFormatter.Binder is set before calling BinaryFormatter.Deserialize |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2305.md b/docs/fundamentals/code-analysis/quality-rules/ca2305.md
index dab386913d9c3..1b24b1585a342 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2305.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2305.md
@@ -19,7 +19,7 @@ f1_keywords:
| **Title** | Do not use insecure deserializer LosFormatter |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2310.md b/docs/fundamentals/code-analysis/quality-rules/ca2310.md
index 721b9dfd3aad9..1f63d0dd2be8d 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2310.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2310.md
@@ -19,7 +19,7 @@ f1_keywords:
| **Title** | Do not use insecure deserializer NetDataContractSerializer |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2311.md b/docs/fundamentals/code-analysis/quality-rules/ca2311.md
index 593b644e2db73..97cc3ec0ce121 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2311.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2311.md
@@ -19,7 +19,7 @@ f1_keywords:
| **Title** | Do not deserialize without first setting NetDataContractSerializer.Binder |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2312.md b/docs/fundamentals/code-analysis/quality-rules/ca2312.md
index 7810bcc64ab51..07ba4296a971f 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2312.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2312.md
@@ -19,7 +19,7 @@ f1_keywords:
| **Title** | Ensure NetDataContractSerializer.Binder is set before deserializing |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2315.md b/docs/fundamentals/code-analysis/quality-rules/ca2315.md
index 7cdd95eac1d9e..686dbec785dbf 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2315.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2315.md
@@ -19,7 +19,7 @@ f1_keywords:
| **Title** | Do not use insecure deserializer ObjectStateFormatter |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2321.md b/docs/fundamentals/code-analysis/quality-rules/ca2321.md
index 500a32ab198d7..ad38dd1367133 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2321.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2321.md
@@ -18,7 +18,7 @@ f1_keywords:
| **Title** | Do not deserialize with JavaScriptSerializer using a SimpleTypeResolver |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2322.md b/docs/fundamentals/code-analysis/quality-rules/ca2322.md
index 65d7bd745f0d1..258f9f660118f 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2322.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2322.md
@@ -19,7 +19,7 @@ f1_keywords:
| **Title** | Ensure JavaScriptSerializer is not initialized with SimpleTypeResolver before deserializing |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2326.md b/docs/fundamentals/code-analysis/quality-rules/ca2326.md
index 1b8ae0697f94e..40e81f7881363 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2326.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2326.md
@@ -18,7 +18,7 @@ f1_keywords:
| **Title** | Do not use TypeNameHandling values other than None |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2327.md b/docs/fundamentals/code-analysis/quality-rules/ca2327.md
index 614d0c3bf6519..f7b3de88fd089 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2327.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2327.md
@@ -18,7 +18,7 @@ f1_keywords:
| **Title** | Do not use insecure JsonSerializerSettings |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2328.md b/docs/fundamentals/code-analysis/quality-rules/ca2328.md
index 48e631e37a2de..c2096b7907659 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2328.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2328.md
@@ -18,7 +18,7 @@ f1_keywords:
| **Title** | Ensure that JsonSerializerSettings are secure |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2329.md b/docs/fundamentals/code-analysis/quality-rules/ca2329.md
index 96dc3dcd19a13..74f1aa5bceab1 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2329.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2329.md
@@ -18,7 +18,7 @@ f1_keywords:
| **Title** | Do not deserialize with JsonSerializer using an insecure configuration |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2330.md b/docs/fundamentals/code-analysis/quality-rules/ca2330.md
index b2af060af47b2..0ec15083e5e0f 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2330.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2330.md
@@ -18,7 +18,7 @@ f1_keywords:
| **Title** | Ensure that JsonSerializer has a secure configuration when deserializing |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2350.md b/docs/fundamentals/code-analysis/quality-rules/ca2350.md
index b04ffcbfbd983..d7d24642b3fd5 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2350.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2350.md
@@ -17,7 +17,7 @@ f1_keywords:
| **Title** | Ensure DataTable.ReadXml()'s input is trusted |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2351.md b/docs/fundamentals/code-analysis/quality-rules/ca2351.md
index ca0c2b6fa3ea3..6239089f4a132 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2351.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2351.md
@@ -17,7 +17,7 @@ f1_keywords:
| **Title** | Ensure DataSet.ReadXml()'s input is trusted |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2352.md b/docs/fundamentals/code-analysis/quality-rules/ca2352.md
index 49c05e7a98c7c..c4c9655b88139 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2352.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2352.md
@@ -17,7 +17,7 @@ f1_keywords:
| **Title** | Unsafe DataSet or DataTable in serializable type can be vulnerable to remote code execution attacks |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2353.md b/docs/fundamentals/code-analysis/quality-rules/ca2353.md
index 1a83ad09bcb12..9e23691e0e56f 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2353.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2353.md
@@ -17,7 +17,7 @@ f1_keywords:
| **Title** | Unsafe DataSet or DataTable in serializable type |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2354.md b/docs/fundamentals/code-analysis/quality-rules/ca2354.md
index e8d3abfc61f00..a94f8ce60472a 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2354.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2354.md
@@ -17,7 +17,7 @@ f1_keywords:
| **Title** | Unsafe DataSet or DataTable in deserialized object graph can be vulnerable to remote code execution attack |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2355.md b/docs/fundamentals/code-analysis/quality-rules/ca2355.md
index 95cb10468368b..9a7ab2db9afb2 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2355.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2355.md
@@ -17,7 +17,7 @@ f1_keywords:
| **Title** | Unsafe DataSet or DataTable in deserialized object graph |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2356.md b/docs/fundamentals/code-analysis/quality-rules/ca2356.md
index acfcee6ed1049..4b5de19545c01 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2356.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2356.md
@@ -17,7 +17,7 @@ f1_keywords:
| **Title** | Unsafe DataSet or DataTable type in web deserialized object graph |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2361.md b/docs/fundamentals/code-analysis/quality-rules/ca2361.md
index da99f7f4fe3a8..faa323b0d1697 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2361.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2361.md
@@ -17,7 +17,7 @@ f1_keywords:
| **Title** | Ensure autogenerated class containing DataSet.ReadXml() is not used with untrusted data |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca2362.md b/docs/fundamentals/code-analysis/quality-rules/ca2362.md
index bf0f48d930416..f6771bb6a3b9c 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca2362.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca2362.md
@@ -17,7 +17,7 @@ f1_keywords:
| **Title** | Unsafe DataSet or DataTable in autogenerated serializable type can be vulnerable to remote code execution attacks |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca3001.md b/docs/fundamentals/code-analysis/quality-rules/ca3001.md
index 7c0b4601c956f..da8cd1f957984 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca3001.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca3001.md
@@ -19,7 +19,7 @@ ms.custom: sfi-ropc-nochange
| **Title** | Review code for SQL injection vulnerabilities |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca3002.md b/docs/fundamentals/code-analysis/quality-rules/ca3002.md
index 6661a9f33ed77..3f8e1dd3edc13 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca3002.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca3002.md
@@ -18,7 +18,7 @@ f1_keywords:
| **Title** | Review code for XSS vulnerabilities |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca3003.md b/docs/fundamentals/code-analysis/quality-rules/ca3003.md
index 14aad1052dcd6..89ffc531c00e5 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca3003.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca3003.md
@@ -18,7 +18,7 @@ f1_keywords:
| **Title** | Review code for file path injection vulnerabilities |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca3004.md b/docs/fundamentals/code-analysis/quality-rules/ca3004.md
index f7f72bef166a0..d6e45b8074c70 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca3004.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca3004.md
@@ -18,7 +18,7 @@ f1_keywords:
| **Title** | Review code for information disclosure vulnerabilities |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca3005.md b/docs/fundamentals/code-analysis/quality-rules/ca3005.md
index 0029bae581daa..c0546c1cb5a7e 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca3005.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca3005.md
@@ -18,7 +18,7 @@ f1_keywords:
| **Title** | Review code for LDAP injection vulnerabilities |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca3006.md b/docs/fundamentals/code-analysis/quality-rules/ca3006.md
index d9f9271f1c876..5830626291f25 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca3006.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca3006.md
@@ -18,7 +18,7 @@ f1_keywords:
| **Title** | Review code for process command injection vulnerabilities |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca3007.md b/docs/fundamentals/code-analysis/quality-rules/ca3007.md
index d09f8095b2339..1ec2b3cc66e23 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca3007.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca3007.md
@@ -18,7 +18,7 @@ f1_keywords:
| **Title** | Review code for open redirect vulnerabilities |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca3008.md b/docs/fundamentals/code-analysis/quality-rules/ca3008.md
index b38aacc011d7b..2e5f676f2ea89 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca3008.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca3008.md
@@ -18,7 +18,7 @@ f1_keywords:
| **Title** | Review code for XPath injection vulnerabilities |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca3009.md b/docs/fundamentals/code-analysis/quality-rules/ca3009.md
index d9884c4c8fb3a..f71655601f9f0 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca3009.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca3009.md
@@ -18,7 +18,7 @@ f1_keywords:
| **Title** | Review code for XML injection vulnerabilities |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca3010.md b/docs/fundamentals/code-analysis/quality-rules/ca3010.md
index a8535e1687611..34f304bdf9a2e 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca3010.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca3010.md
@@ -18,7 +18,7 @@ f1_keywords:
| **Title** | Review code for XAML injection vulnerabilities |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca3011.md b/docs/fundamentals/code-analysis/quality-rules/ca3011.md
index 41dabc54ad5af..c188b4a80c259 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca3011.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca3011.md
@@ -18,7 +18,7 @@ f1_keywords:
| **Title** | Review code for DLL injection vulnerabilities |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca3012.md b/docs/fundamentals/code-analysis/quality-rules/ca3012.md
index 61158fdba2fc9..5e1f706562968 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca3012.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca3012.md
@@ -18,7 +18,7 @@ f1_keywords:
| **Title** | Review code for regex injection vulnerabilities |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca3061.md b/docs/fundamentals/code-analysis/quality-rules/ca3061.md
index c093c1cb9caa2..4df0f43be4e45 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca3061.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca3061.md
@@ -17,7 +17,7 @@ f1_keywords:
| **Title** | Do not add schema by URL |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca3075.md b/docs/fundamentals/code-analysis/quality-rules/ca3075.md
index effe027c49bde..6811e0faea459 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca3075.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca3075.md
@@ -13,7 +13,7 @@ f1_keywords:
| **Title** | Insecure DTD Processing |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca3076.md b/docs/fundamentals/code-analysis/quality-rules/ca3076.md
index 3b5f05f4eac93..7c15b51c2cba1 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca3076.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca3076.md
@@ -13,7 +13,7 @@ f1_keywords:
| **Title** | Insecure XSLT Script Execution |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca3077.md b/docs/fundamentals/code-analysis/quality-rules/ca3077.md
index a211b5aad4de2..dc3f0c5d1b409 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca3077.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca3077.md
@@ -13,7 +13,7 @@ f1_keywords:
| **Title** | Insecure Processing in API Design, XML Document and XML Text Reader |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca3147.md b/docs/fundamentals/code-analysis/quality-rules/ca3147.md
index 44230bf8fdeee..9cf407181ab35 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca3147.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca3147.md
@@ -17,7 +17,7 @@ f1_keywords:
| **Title** | Mark verb handlers with ValidateAntiForgeryToken |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5350.md b/docs/fundamentals/code-analysis/quality-rules/ca5350.md
index 4bfe3bcfb1491..ee39906269a7a 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5350.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5350.md
@@ -13,7 +13,7 @@ f1_keywords:
| **Title** | Do Not Use Weak Cryptographic Algorithms |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
> [!NOTE]
> This warning was last updated on November 2015.
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5351.md b/docs/fundamentals/code-analysis/quality-rules/ca5351.md
index 582382569d873..64a5a9c8ce86b 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5351.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5351.md
@@ -13,7 +13,7 @@ f1_keywords:
| **Title** | Do Not Use Broken Cryptographic Algorithms |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
> [!NOTE]
> This warning was last updated on November 2015.
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5358.md b/docs/fundamentals/code-analysis/quality-rules/ca5358.md
index c77b42a2cf94c..3e2595165df97 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5358.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5358.md
@@ -17,7 +17,7 @@ f1_keywords:
| **Title** | Do Not Use Unsafe Cipher Modes |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5359.md b/docs/fundamentals/code-analysis/quality-rules/ca5359.md
index 5f5437cf2367a..f5df2e8432710 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5359.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5359.md
@@ -15,7 +15,7 @@ f1_keywords:
| **Title** | Do not disable certificate validation |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5360.md b/docs/fundamentals/code-analysis/quality-rules/ca5360.md
index f40b75039f0bb..0757d8e7fe1d5 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5360.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5360.md
@@ -16,7 +16,7 @@ f1_keywords:
| **Title** | Do not call dangerous methods in deserialization |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5361.md b/docs/fundamentals/code-analysis/quality-rules/ca5361.md
index 6183e1b57634c..47294aa07fc66 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5361.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5361.md
@@ -19,7 +19,7 @@ f1_keywords:
| **Title** | Do not disable SChannel use of strong crypto |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5362.md b/docs/fundamentals/code-analysis/quality-rules/ca5362.md
index 3481be60add49..63b7745dc2443 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5362.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5362.md
@@ -16,7 +16,7 @@ f1_keywords:
| **Title** | Potential reference cycle in deserialized object graph |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5363.md b/docs/fundamentals/code-analysis/quality-rules/ca5363.md
index d32ce68a17a56..44dec086a08d5 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5363.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5363.md
@@ -17,7 +17,7 @@ f1_keywords:
| **Title** | Do not disable request validation |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5364.md b/docs/fundamentals/code-analysis/quality-rules/ca5364.md
index 9e86d46f3fd56..bec534540029b 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5364.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5364.md
@@ -18,7 +18,7 @@ f1_keywords:
| **Title** | Do not use deprecated security protocols |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5365.md b/docs/fundamentals/code-analysis/quality-rules/ca5365.md
index a05f0402fb811..bd5db1b13a0f7 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5365.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5365.md
@@ -15,7 +15,7 @@ f1_keywords:
| **Title** | Do Not Disable HTTP Header Checking |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5366.md b/docs/fundamentals/code-analysis/quality-rules/ca5366.md
index 6ff043d31d90b..e761b80f36b84 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5366.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5366.md
@@ -15,7 +15,7 @@ f1_keywords:
| **Title** | Use XmlReader For DataSet Read XML |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5367.md b/docs/fundamentals/code-analysis/quality-rules/ca5367.md
index 5c0c608ad7739..b37261b36bbeb 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5367.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5367.md
@@ -15,7 +15,7 @@ f1_keywords:
| **Title** | Do not serialize types with pointer fields |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5368.md b/docs/fundamentals/code-analysis/quality-rules/ca5368.md
index 6ad9980c68c03..233cae77c368b 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5368.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5368.md
@@ -16,7 +16,7 @@ f1_keywords:
| **Title** | Set ViewStateUserKey For Classes Derived From Page |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5369.md b/docs/fundamentals/code-analysis/quality-rules/ca5369.md
index c8f1fd1aac753..578004f79a9e7 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5369.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5369.md
@@ -17,7 +17,7 @@ f1_keywords:
| **Title** | Use XmlReader for Deserialize |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5370.md b/docs/fundamentals/code-analysis/quality-rules/ca5370.md
index 9457e915e82d6..d25c848565a4f 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5370.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5370.md
@@ -17,7 +17,7 @@ f1_keywords:
| **Title** | Use XmlReader for validating reader |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5371.md b/docs/fundamentals/code-analysis/quality-rules/ca5371.md
index 59dfb51f8bfea..265979c71959c 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5371.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5371.md
@@ -17,7 +17,7 @@ f1_keywords:
| **Title** | Use XmlReader for schema read |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5372.md b/docs/fundamentals/code-analysis/quality-rules/ca5372.md
index e247b7387fc95..8466c24a11d0e 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5372.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5372.md
@@ -17,7 +17,7 @@ f1_keywords:
| **Title** | Use XmlReader for XPathDocument |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5373.md b/docs/fundamentals/code-analysis/quality-rules/ca5373.md
index 129d6f3b054ab..f9c6cc8cfddfc 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5373.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5373.md
@@ -17,7 +17,7 @@ f1_keywords:
| **Title** | Do not use obsolete key derivation function |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5374.md b/docs/fundamentals/code-analysis/quality-rules/ca5374.md
index 03c754cde5b4b..2098b4a7aff91 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5374.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5374.md
@@ -18,7 +18,7 @@ f1_keywords:
| **Title** | Do not use XslTransform |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5375.md b/docs/fundamentals/code-analysis/quality-rules/ca5375.md
index 5c635bc30f3c6..f88d73af39c4e 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5375.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5375.md
@@ -16,7 +16,7 @@ f1_keywords:
| **Title** | Do not use account shared access signature |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5376.md b/docs/fundamentals/code-analysis/quality-rules/ca5376.md
index 87ffdca671533..d886eb946f643 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5376.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5376.md
@@ -16,7 +16,7 @@ f1_keywords:
| **Title** | Use SharedAccessProtocol HttpsOnly |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5377.md b/docs/fundamentals/code-analysis/quality-rules/ca5377.md
index 9b4cb84559998..718fc108884e2 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5377.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5377.md
@@ -16,7 +16,7 @@ f1_keywords:
| **Title** | Use container level access policy |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5378.md b/docs/fundamentals/code-analysis/quality-rules/ca5378.md
index 1ba4d167ced50..fcb958c49b0d9 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5378.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5378.md
@@ -19,7 +19,7 @@ f1_keywords:
| **Title** | Do not disable ServicePointManagerSecurityProtocols |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5379.md b/docs/fundamentals/code-analysis/quality-rules/ca5379.md
index 9e068d20ba1a3..2a9cd773c0bfa 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5379.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5379.md
@@ -16,7 +16,7 @@ f1_keywords:
| **Title** | Ensure key derivation function algorithm is sufficiently strong |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5380.md b/docs/fundamentals/code-analysis/quality-rules/ca5380.md
index c08cd8a785d21..ae510aa544644 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5380.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5380.md
@@ -17,7 +17,7 @@ f1_keywords:
| **Title** | Do not add certificates to root store |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5381.md b/docs/fundamentals/code-analysis/quality-rules/ca5381.md
index f9337d7733170..a1ccd013faad0 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5381.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5381.md
@@ -17,7 +17,7 @@ f1_keywords:
| **Title** | Ensure certificates are not added to root store |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5382.md b/docs/fundamentals/code-analysis/quality-rules/ca5382.md
index f1d44ad8b9342..fbd42e21cbd52 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5382.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5382.md
@@ -16,7 +16,7 @@ f1_keywords:
| **Title** | Use secure cookies in ASP.NET Core |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5383.md b/docs/fundamentals/code-analysis/quality-rules/ca5383.md
index 1958027cfc5f4..4280635516982 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5383.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5383.md
@@ -16,7 +16,7 @@ f1_keywords:
| **Title** | Ensure use secure cookies in ASP.NET Core |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5384.md b/docs/fundamentals/code-analysis/quality-rules/ca5384.md
index 86db1a51556b2..000c304b2e89c 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5384.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5384.md
@@ -16,7 +16,7 @@ f1_keywords:
| **Title** | Do not use digital signature algorithm (DSA) |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5385.md b/docs/fundamentals/code-analysis/quality-rules/ca5385.md
index b1b53e3cd439b..6e619699e6bd9 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5385.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5385.md
@@ -16,7 +16,7 @@ f1_keywords:
| **Title** | Use Rivest–Shamir–Adleman (RSA) algorithm with sufficient key size |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5386.md b/docs/fundamentals/code-analysis/quality-rules/ca5386.md
index 052cc0f619676..05df170a4791d 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5386.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5386.md
@@ -18,7 +18,7 @@ f1_keywords:
| **Title** | Avoid hardcoding SecurityProtocolType value |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5387.md b/docs/fundamentals/code-analysis/quality-rules/ca5387.md
index 5fe07f219baaa..876a75a76a918 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5387.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5387.md
@@ -15,7 +15,7 @@ f1_keywords:
| **Title** | Do not use weak key derivation function with insufficient iteration count |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5388.md b/docs/fundamentals/code-analysis/quality-rules/ca5388.md
index 0ddcec3481456..b4bf0a050c1d9 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5388.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5388.md
@@ -15,7 +15,7 @@ f1_keywords:
| **Title** | Ensure sufficient iteration count when using weak key derivation function |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5389.md b/docs/fundamentals/code-analysis/quality-rules/ca5389.md
index ac579aa03653a..c73f7fb958672 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5389.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5389.md
@@ -17,7 +17,7 @@ f1_keywords:
| **Title** | Do not add archive item's path to the target file system path |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5390.md b/docs/fundamentals/code-analysis/quality-rules/ca5390.md
index 0b298a86d174c..290479ecacd56 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5390.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5390.md
@@ -15,7 +15,7 @@ f1_keywords:
| **Title** | Do not hard-code encryption key |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5391.md b/docs/fundamentals/code-analysis/quality-rules/ca5391.md
index 426814bd196c9..7fb5ef95a3b36 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5391.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5391.md
@@ -15,7 +15,7 @@ f1_keywords:
| **Title** | Use antiforgery tokens in ASP.NET Core MVC controllers |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5392.md b/docs/fundamentals/code-analysis/quality-rules/ca5392.md
index e924182a267d2..10c727ab1adcc 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5392.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5392.md
@@ -15,7 +15,7 @@ f1_keywords:
| **Title** | Use DefaultDllImportSearchPaths attribute for P/Invokes |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5393.md b/docs/fundamentals/code-analysis/quality-rules/ca5393.md
index 75c1a362fe6c5..3eb515c4a7b83 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5393.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5393.md
@@ -15,7 +15,7 @@ f1_keywords:
| **Title** | Do not use unsafe DllImportSearchPath value |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5394.md b/docs/fundamentals/code-analysis/quality-rules/ca5394.md
index 28385cc2889a8..87efc46c7a1d0 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5394.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5394.md
@@ -15,7 +15,7 @@ f1_keywords:
| **Title** | Do not use insecure randomness |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5395.md b/docs/fundamentals/code-analysis/quality-rules/ca5395.md
index 45c2d70d99079..02fd2af3e981d 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5395.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5395.md
@@ -15,7 +15,7 @@ f1_keywords:
| **Title** | Miss HttpVerb attribute for action methods |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5396.md b/docs/fundamentals/code-analysis/quality-rules/ca5396.md
index f05fed0f9900e..643933a75ab38 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5396.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5396.md
@@ -15,7 +15,7 @@ f1_keywords:
| **Title** | Set HttpOnly to true for HttpCookie |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5397.md b/docs/fundamentals/code-analysis/quality-rules/ca5397.md
index 3550aff41ba2e..a4f91b13d5f4c 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5397.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5397.md
@@ -18,7 +18,7 @@ f1_keywords:
| **Title** | Do not use deprecated SslProtocols values |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5398.md b/docs/fundamentals/code-analysis/quality-rules/ca5398.md
index 56bf695a92f3a..4f21dea570a21 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5398.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5398.md
@@ -18,7 +18,7 @@ f1_keywords:
| **Title** | Avoid hardcoded SslProtocols values |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5399.md b/docs/fundamentals/code-analysis/quality-rules/ca5399.md
index fd377631e2b57..8e3f03d75344d 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5399.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5399.md
@@ -15,7 +15,7 @@ f1_keywords:
| **Title** | Enable HttpClient certificate revocation list check |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5400.md b/docs/fundamentals/code-analysis/quality-rules/ca5400.md
index 183ca25ca0474..6b436ebe882d2 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5400.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5400.md
@@ -15,7 +15,7 @@ f1_keywords:
| **Title** | Ensure HttpClient certificate revocation list check is not disabled |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5401.md b/docs/fundamentals/code-analysis/quality-rules/ca5401.md
index 3f253f53d4985..39910b9dddeaf 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5401.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5401.md
@@ -15,7 +15,7 @@ f1_keywords:
| **Title** | Do not use CreateEncryptor with non-default IV |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5402.md b/docs/fundamentals/code-analysis/quality-rules/ca5402.md
index c43940ce63654..c1563c7edd443 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5402.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5402.md
@@ -15,7 +15,7 @@ f1_keywords:
| **Title** | Use CreateEncryptor with the default IV |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5403.md b/docs/fundamentals/code-analysis/quality-rules/ca5403.md
index 5686f36cfb955..627febea00c3e 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5403.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5403.md
@@ -17,7 +17,7 @@ f1_keywords:
| **Title** | Do not hard-code certificate |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5404.md b/docs/fundamentals/code-analysis/quality-rules/ca5404.md
index f5974b4544dcf..2f7ab9fd15262 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5404.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5404.md
@@ -14,7 +14,7 @@ f1_keywords:
| **Title** | Do not disable token validation checks |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/code-analysis/quality-rules/ca5405.md b/docs/fundamentals/code-analysis/quality-rules/ca5405.md
index fe875ab85460e..d3a699961ba1b 100644
--- a/docs/fundamentals/code-analysis/quality-rules/ca5405.md
+++ b/docs/fundamentals/code-analysis/quality-rules/ca5405.md
@@ -14,7 +14,7 @@ f1_keywords:
| **Title** | Do not always skip token validation in delegates |
| **Category** | [Security](security-warnings.md) |
| **Fix is breaking or non-breaking** | Non-breaking |
-| **Enabled by default in .NET 9** | No |
+| **Enabled by default in .NET 10** | No |
## Cause
diff --git a/docs/fundamentals/implementations.md b/docs/fundamentals/implementations.md
index cf2818024ebcf..9d166adbcd0b7 100644
--- a/docs/fundamentals/implementations.md
+++ b/docs/fundamentals/implementations.md
@@ -1,7 +1,7 @@
---
title: .NET implementations
description: Describes the various .NET implementations, including .NET 5+, .NET Framework, and Mono.
-ms.date: 11/22/2024
+ms.date: 11/07/2025
ms.custom: updateeachrelease
---
# .NET implementations
@@ -25,7 +25,7 @@ There are three main .NET implementations:
.NET, previously referred to as .NET Core, is currently the primary implementation. .NET is built on a single code base that supports multiple platforms and many workloads, such as Windows desktop apps and cross-platform console apps, cloud services, and websites. [Some workloads](../core/whats-new/dotnet-6.md#sdk-workloads), such as .NET WebAssembly build tools, are available as optional installations.
-.NET 9 is the latest version of this .NET implementation. It implements .NET Standard, so code that targets .NET Standard can run on .NET. [ASP.NET Core](https://dotnet.microsoft.com/learn/aspnet/what-is-aspnet-core), [Windows Forms](/dotnet/desktop/winforms/windows-forms-overview), and [Windows Presentation Foundation (WPF)](/dotnet/desktop/wpf/) all run on .NET.
+.NET 10 is the latest version of this .NET implementation. It implements .NET Standard, so code that targets .NET Standard can run on .NET. [ASP.NET Core](https://dotnet.microsoft.com/learn/aspnet/what-is-aspnet-core), [Windows Forms](/dotnet/desktop/winforms/windows-forms-overview), and [Windows Presentation Foundation (WPF)](/dotnet/desktop/wpf/) all run on .NET.
For more information, see the following resources:
diff --git a/docs/index.yml b/docs/index.yml
index 18ab3c0dfa31b..155b3dcbd47c7 100644
--- a/docs/index.yml
+++ b/docs/index.yml
@@ -12,7 +12,7 @@ metadata:
ms.collection: collection
author: BillWagner
ms.author: wiwagn
- ms.date: 02/28/2025
+ ms.date: 11/07/2025
# highlightedContent section (optional)
# Maximum of 8 items
@@ -357,11 +357,11 @@ additionalContent:
# Card
- title: ".NET API reference"
summary: API reference documentation for .NET
- url: ../api/index.md?view=net-9.0
+ url: ../api/index.md?view=net-10.0
# Card
- 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=aspnetcore-10.0&preserve-view=true
# Card
- title: "C# language reference"
summary: C# language reference and specification
diff --git a/docs/standard/analyzers/platform-compat-analyzer.md b/docs/standard/analyzers/platform-compat-analyzer.md
index 3c4c71d622776..875bba35e5625 100644
--- a/docs/standard/analyzers/platform-compat-analyzer.md
+++ b/docs/standard/analyzers/platform-compat-analyzer.md
@@ -7,9 +7,9 @@ ms.date: 09/20/2021
# Platform compatibility analyzer
-You've probably heard the motto of "One .NET": a single, unified platform for building any type of application. The .NET SDK includes ASP.NET Core, Entity Framework Core, Windows Forms, WPF, and ML.NET, and will add support for more platforms over time. .NET 5+ strives to provide an experience where you don't have to reason about the different flavors of .NET, but doesn't attempt to fully abstract away the underlying operating system (OS). You'll continue to be able to call platform-specific APIs, for example, P/Invokes and WinRT.
+.NET is a single, unified platform for building any type of application. It strives to provide an experience where you don't have to reason about the different flavors of .NET, but doesn't attempt to fully abstract away the underlying operating system (OS). You can continue to call platform-specific APIs, for example, P/Invokes and WinRT.
-But using platform-specific APIs on a component means the code no longer works across all platforms. We needed a way to detect this at design time so developers get diagnostics when they inadvertently use platform-specific APIs. To achieve this goal, .NET 5 introduced the [platform compatibility analyzer](../../fundamentals/code-analysis/quality-rules/ca1416.md) and complementary APIs to help developers identify and use platform-specific APIs where appropriate.
+But using platform-specific APIs on a component means the code no longer works across all platforms. The [platform compatibility analyzer](../../fundamentals/code-analysis/quality-rules/ca1416.md) and complementary APIs provide diagnostics to help you identify and use platform-specific APIs where appropriate.
The complementary APIs include:
diff --git a/docs/standard/choosing-core-framework-server.md b/docs/standard/choosing-core-framework-server.md
index e958f9805d486..38303b7d17734 100644
--- a/docs/standard/choosing-core-framework-server.md
+++ b/docs/standard/choosing-core-framework-server.md
@@ -1,12 +1,12 @@
---
title: Choose between .NET and .NET Framework for server apps
description: A guide to help you decide which implementation of .NET to use when building a server app.
-ms.date: 11/22/2024
+ms.date: 11/07/2025
ms.custom: updateeachrelease
---
# .NET vs. .NET Framework for server apps
-There are two supported [.NET implementations](glossary.md#implementation-of-net) for building server-side apps: .NET and .NET Framework. **The latest .NET version (currently .NET 9) is the preferred version of .NET to use for server development.** The reasons to continue using .NET Framework are specific and limited.
+There are two supported [.NET implementations](glossary.md#implementation-of-net) for building server-side apps: .NET and .NET Framework. **The latest .NET version (currently .NET 10) is the preferred version of .NET to use for server development.** The reasons to continue using .NET Framework are specific and limited.
| Implementation | Included versions |
|----------------|-----------------------------------------------------|
diff --git a/docs/standard/frameworks.md b/docs/standard/frameworks.md
index 210d067106a5f..c6fcc14740dd9 100644
--- a/docs/standard/frameworks.md
+++ b/docs/standard/frameworks.md
@@ -1,7 +1,7 @@
---
title: Target frameworks in SDK-style projects - .NET
description: Learn about target frameworks for .NET apps and libraries.
-ms.date: 04/07/2025
+ms.date: 11/06/2025
ms.service: dotnet
ms.custom: updateeachrelease
ms.subservice: standard-library
@@ -26,6 +26,7 @@ The following table defines the most common target frameworks, how they're refer
| Target framework | Latest
stable version | Target framework moniker (TFM) | Implemented
.NET Standard version |
|:----------------:|:---------------------------:|:------------------------------:|:---------------------------------------:|
+| .NET 10 | 10 | net10.0 | 2.1 |
| .NET 9 | 9 | net9.0 | 2.1 |
| .NET 8 | 8 | net8.0 | 2.1 |
| .NET Standard | 2.1 | netstandard2.1 | N/A |
@@ -38,7 +39,7 @@ A target framework is typically referenced by a TFM. The following table shows t
| Target Framework | TFM |
| -------------------------- | --- |
-| .NET 5+ (and .NET Core) | netcoreapp1.0
netcoreapp1.1
netcoreapp2.0
netcoreapp2.1
netcoreapp2.2
netcoreapp3.0
netcoreapp3.1
net5.0*
net6.0*
net7.0*
net8.0*
net9.0* |
+| .NET 5+ (and .NET Core) | netcoreapp1.0
netcoreapp1.1
netcoreapp2.0
netcoreapp2.1
netcoreapp2.2
netcoreapp3.0
netcoreapp3.1
net5.0*
net6.0*
net7.0*
net8.0*
net9.0*
net10.0* |
| .NET Standard | netstandard1.0
netstandard1.1
netstandard1.2
netstandard1.3
netstandard1.4
netstandard1.5
netstandard1.6
netstandard2.0
netstandard2.1 |
| .NET Framework | net11
net20
net35
net40
net403
net45
net451
net452
net46
net461
net462
net47
net471
net472
net48
net481 |
| Windows Store | netcore [netcore45]
netcore45 [win] [win8]
netcore451 [win81] |
@@ -48,35 +49,16 @@ A target framework is typically referenced by a TFM. The following table shows t
| Windows Phone | wp [wp7]
wp7
wp75
wp8
wp81
wpa81 |
| Universal Windows Platform | uap [uap10.0]
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).
-### .NET 5+ OS-specific TFMs
+### OS-specific TFMs
-The `net5.0`, `net6.0`, `net7.0`, `net8.0`, and `net9.0` TFMs include technologies that work across different platforms. Specifying an *OS-specific TFM* makes APIs that are specific to an operating system available to your app, for example, Windows Forms or iOS bindings. OS-specific TFMs also inherit every API available to their base TFM, for example, the `net9.0` TFM.
+The `net8.0`, `net9.0`, and `net10.0` TFMs include technologies that work across different platforms. Specifying an *OS-specific TFM* makes APIs that are specific to an operating system available to your app, for example, Windows Forms or iOS bindings. OS-specific TFMs also inherit every API available to their base TFM, for example, the `net10.0` TFM.
-.NET 5 introduced the `net5.0-windows` OS-specific TFM, which includes Windows-specific bindings for WinForms, WPF, and UWP APIs. .NET 6 and later versions have additional OS-specific TFMs, for example, `net6.0-ios`.
-
-The following table shows the compatibility of the .NET 5+ TFMs.
+The following table shows the compatibility of the .NET 8+ TFMs.
| TFM | Compatible with |
|----------------------|------------------------------------------------------------------|
-| `net5.0` | net1..4 (with NU1701 warning)
netcoreapp1..3.1 (warning when WinForms or WPF is referenced)
netstandard1..2.1 |
-| `net5.0-windows` | netcoreapp1..3.1 (plus everything else inherited from `net5.0`) |
-| `net6.0` | (Subsequent version of `net5.0`) |
-| `net6.0-android` | `xamarin.android` (plus everything else inherited from `net6.0`) |
-| `net6.0-ios` | Everything inherited from `net6.0` |
-| `net6.0-maccatalyst` | Everything inherited from `net6.0` |
-| `net6.0-macos` | Everything inherited from `net6.0` |
-| `net6.0-tvos` | Everything inherited from `net6.0` |
-| `net6.0-windows` | (Subsequent version of `net5.0-windows`) |
-| `net7.0` | (Subsequent version of `net6.0`) |
-| `net7.0-android` | (Subsequent version of `net6.0-android`) |
-| `net7.0-ios` | (Subsequent version of `net6.0-ios`) |
-| `net7.0-maccatalyst` | (Subsequent version of `net6.0-maccatalyst`) |
-| `net7.0-macos` | (Subsequent version of `net6.0-macos`) |
-| `net7.0-tizen` | `tizen40` (plus everything else inherited from `net7.0`) |
-| `net7.0-tvos` | (Subsequent version of `net6.0-tvos`) |
-| `net7.0-windows` | (Subsequent version of `net6.0-windows`) |
| `net8.0` | (Subsequent version of `net7.0`) |
| `net8.0-android` | (Subsequent version of `net7.0-android`) |
| `net8.0-browser` | Everything inherited from `net8.0` |
@@ -95,6 +77,15 @@ The following table shows the compatibility of the .NET 5+ TFMs.
| `net9.0-tizen` | (Subsequent version of `net8.0-tizen`) |
| `net9.0-tvos` | (Subsequent version of `net8.0-tvos`) |
| `net9.0-windows` | (Subsequent version of `net8.0-windows`) |
+| `net10.0` | (Subsequent version of `net9.0`) |
+| `net10.0-android` | (Subsequent version of `net9.0-android`) |
+| `net10.0-browser` | (Subsequent version of `net9.0-browser`) |
+| `net10.0-ios` | (Subsequent version of `net9.0-ios`) |
+| `net10.0-maccatalyst` | (Subsequent version of `net9.0-maccatalyst`) |
+| `net10.0-macos` | (Subsequent version of `net9.0-macos`) |
+| `net10.0-tizen` | (Subsequent version of `net9.0-tizen`) |
+| `net10.0-tvos` | (Subsequent version of `net9.0-tvos`) |
+| `net10.0-windows` | (Subsequent version of `net9.0-windows`) |
To make your app portable across different platforms but still have access to OS-specific APIs, you can target multiple OS-specific TFMs and add platform guards around OS-specific API calls using `#if` preprocessor directives. For a list of the available symbols, see [Preprocessor symbols](#preprocessor-symbols).
@@ -102,24 +93,25 @@ To make your app portable across different platforms but still have access to OS
Use these guidelines to determine which TFM to use in your app:
-- Apps that are portable to multiple platforms should target a base TFM, for example, `net9.0`. This includes most libraries but also ASP.NET Core and Entity Framework.
-- Platform-specific libraries should target platform-specific flavors. For example, WinForms and WPF projects should target `net9.0-windows`.
-- Cross-platform application models (for example, ASP.NET Core) should at least target the base TFM, for example, `net9.0`, but might also target additional platform-specific flavors to light-up more APIs or features.
+- Apps that are portable to multiple platforms should target a base TFM, for example, `net10.0`. This includes most libraries but also ASP.NET Core and Entity Framework.
+- Platform-specific libraries should target platform-specific flavors. For example, WinForms and WPF projects should target `net10.0-windows`.
+- Cross-platform application models (for example, ASP.NET Core) should at least target the base TFM, for example, `net10.0`, but might also target additional platform-specific flavors to light-up more APIs or features.
#### OS version in TFMs
-You can also specify an optional OS version at the end of an OS-specific TFM, for example, `net6.0-ios15.0`. The version indicates which APIs are available to your app or library. It doesn't control the OS version that your app or library supports at run time. It's used to select the reference assemblies that your project compiles against, and to select assets from NuGet packages. Think of this version as the "platform version" or "OS API version" to disambiguate it from the run-time OS version.
+You can also specify an optional OS version at the end of an OS-specific TFM, for example, `net8.0-ios17.2`. The version indicates which APIs are available to your app or library. It doesn't control the OS version that your app or library supports at run time. It's used to select the reference assemblies that your project compiles against, and to select assets from NuGet packages. Think of this version as the "platform version" or "OS API version" to disambiguate it from the run-time OS version.
-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.
+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.
-The following table shows the *default* target platform version (TPV) for each .NET release. **If you want to use the latest bindings, use the default (that is, don't specify an OS version).**
+The following table shows the *default* target platform version (TPV) for Android and iOS for each .NET release. **If you want to use the latest bindings, use the default (that is, don't specify an OS version).**
-| .NET version | Android | iOS | Mac Catalyst | macOS | tvOS | Tizen | Windows |
-|--------------|--------:|-----:|-------------:|------:|-----:|------:|--------:|
-| .NET 8 | 34.0 | 17.2 | 17.2 | 14.2 | 17.1 | 10.0 | 7.0 |
-| .NET 9 | 35.0 | 18.0 | 18.0 | 15.0 | | 10.0 | 7.0 |
+| .NET version | Android | iOS |
+|--------------|--------:|-----:|
+| .NET 8 | 34.0 | 17.2 |
+| .NET 9 | 35.0 | 18.0 |
+| .NET 10 | 36.0 | 18.7 |
Starting in .NET 9, when service releases introduce support for a later TPV (which will always have the same *major* version number as when the .NET version was initially released), the earliest supported TPV for that .NET version will remain supported. For example, for .NET 9, the earliest supported iOS version, 18.0, will remain supported, even when a service release adds support for the latest iOS 18.x version. **If you need to use the earliest bindings for a .NET release, use a specific OS version number in your TFM.**
@@ -134,7 +126,7 @@ Starting in .NET 9, when service releases introduce support for a later TPV (whi
#### Precedence
-If your app references a package that has multiple assets for different TFMs, the assets that are closer in version number are preferred. For example, if your app targets `net6.0-ios` and the package offers assets for `net6.0` and `net5.0-ios`, the `net6.0` assets are used. For more information, see [Precedences](https://github.com/dotnet/designs/blob/main/accepted/2020/net5/net5.md#precedences).
+If your app references a package that has multiple assets for different TFMs, the assets that are closer in version number are preferred. For example, if your app targets `net9.0-ios` and the package offers assets for `net9.0` and `net8.0-ios`, the `net9.0` assets are used. For more information, see [Precedences](https://github.com/dotnet/designs/blob/main/accepted/2020/net5/net5.md#precedences).
#### Support older OS versions
@@ -144,7 +136,7 @@ For your app to run correctly on an older OS version, it can't call APIs that do
The `SupportedOSPlatformVersion` value (whether explicit or default) is used by the [platform compatibility analyzer](analyzers/platform-compat-analyzer.md), which detects and warns about unguarded calls to newer APIs. It's burned into the project's compiled assembly as an assembly attribute, so that the platform compatibility analyzer can detect unguarded calls to that assembly's APIs from projects with a lower `SupportedOSPlatformVersion` value. On some platforms, the `SupportedOSPlatformVersion` value affects platform-specific app packaging and build processes, which is covered in the documentation for those platforms.
-Here is an example excerpt of a project file that uses the `TargetFramework` and `SupportedOSPlatformVersion` MSBuild properties to specify that the app or library has access to iOS 15.0 APIs but supports running on iOS 13.0 and above:
+The following example is an excerpt of a project file that uses the `TargetFramework` and `SupportedOSPlatformVersion` MSBuild properties to specify that the app or library has access to iOS 15.0 APIs but supports running on iOS 13.0 and higher:
```xml
@@ -160,20 +152,20 @@ Here is an example excerpt of a project file that uses the `TargetFramework` and
## How to specify a target framework
-Target frameworks are specified in a project file. When a single target framework is specified, use the [TargetFramework element](../core/project-sdk/msbuild-props.md#targetframework). The following console app project file demonstrates how to target .NET 9:
+Target frameworks are specified in a project file. When a single target framework is specified, use the [TargetFramework element](../core/project-sdk/msbuild-props.md#targetframework). The following console app project file demonstrates how to target .NET 10:
```xml
Exe
- net9.0
+ net10.0
```
-When you specify multiple target frameworks, you may conditionally reference assemblies for each target framework. In your code, you can conditionally compile against those assemblies by using [preprocessor symbols](#preprocessor-symbols) with *if-then-else* logic.
+When you specify multiple target frameworks, you can conditionally reference assemblies for each target framework. In your code, you can conditionally compile against those assemblies by using [preprocessor symbols](#preprocessor-symbols) with *if-then-else* logic.
The following library project targets APIs of .NET Standard (`netstandard1.4`) and .NET Framework (`net40` and `net45`). Use the plural [TargetFrameworks element](../core/project-sdk/msbuild-props.md#targetframeworks) with multiple target frameworks. The `Condition` attributes include implementation-specific packages when the library is compiled for the two .NET Framework TFMs:
@@ -218,7 +210,7 @@ public class MyClass
## Preprocessor symbols
-The build system is aware of preprocessor symbols representing the target frameworks shown in the [Supported target framework versions](#supported-target-frameworks) table when you're using SDK-style projects. To convert a .NET Standard, .NET Core, or .NET 5+ TFM to a preprocessor symbol, replace dots and hyphens with an underscore, and change lowercase letters to uppercase (for example, the symbol for `netstandard1.4` is `NETSTANDARD1_4`).
+The build system is aware of preprocessor symbols representing the target frameworks shown in the [Supported target framework versions](#supported-target-frameworks) table when you're using SDK-style projects. To convert a .NET Standard, .NET Core, or .NET 5+ TFM to a preprocessor symbol, replace dots and hyphens with an underscore, and change lowercase letters to uppercase (for example, the symbol for `netstandard2.0` is `NETSTANDARD2_0`).
You can disable generation of these symbols via the `DisableImplicitFrameworkDefines` property. For more information about this property, see [DisableImplicitFrameworkDefines](../core/project-sdk/msbuild-props.md#disableimplicitframeworkdefines).
diff --git a/docs/standard/library-guidance/cross-platform-targeting.md b/docs/standard/library-guidance/cross-platform-targeting.md
index f73fd18a53bd7..50cb2593205fd 100644
--- a/docs/standard/library-guidance/cross-platform-targeting.md
+++ b/docs/standard/library-guidance/cross-platform-targeting.md
@@ -1,7 +1,7 @@
---
title: Cross-platform targeting for .NET libraries
description: Best practice recommendations for creating cross-platform .NET libraries.
-ms.date: 08/20/2025
+ms.date: 11/06/2025
---
# Cross-platform targeting
diff --git a/docs/standard/net-standard.md b/docs/standard/net-standard.md
index 62b43be221521..84ae857031196 100644
--- a/docs/standard/net-standard.md
+++ b/docs/standard/net-standard.md
@@ -1,11 +1,10 @@
---
title: .NET Standard
description: Learn about .NET Standard, its versions, and the .NET implementations that support it.
-ms.date: 11/11/2024
+ms.date: 11/06/2025
ms.service: dotnet
ms.subservice: standard-library
ms.custom: "updateeachrelease"
-ms.assetid: c044882c-af15-45f2-96d1-534557a5ee9b
---
# .NET Standard
@@ -88,19 +87,19 @@ If you only need to consume .NET Standard 2.0 libraries in your projects, you ca
## .NET 5+ and .NET Standard
-.NET 5, .NET 6, .NET 7, .NET 8, and .NET 9 are single products with a uniform set of capabilities and APIs that can be used for Windows desktop apps and cross-platform console apps, cloud services, and websites. The .NET 9 [TFMs](frameworks.md), for example, reflect this broad range of scenarios:
+.NET 5, .NET 6, .NET 7, .NET 8, .NET 9, and .NET 10 are single products with a uniform set of capabilities and APIs that can be used for Windows desktop apps and cross-platform console apps, cloud services, and websites. The .NET 10 [TFMs](frameworks.md), for example, reflect this broad range of scenarios:
-- `net9.0`
+- `net10.0`
- This TFM is for code that runs everywhere. With a few exceptions, it includes only technologies that work cross-platform. For .NET 9 code, `net9.0` replaces both `netcoreapp` and `netstandard` TFMs.
+ This TFM is for code that runs everywhere. With a few exceptions, it includes only technologies that work cross-platform.
-- `net9.0-windows`
+- `net10.0-windows`
- This is an example of an [OS-specific TFM](frameworks.md#net-5-os-specific-tfms) that adds OS-specific functionality to everything that `net9.0` refers to.
+ This is an example of an [OS-specific TFM](frameworks.md#os-specific-tfms) that adds OS-specific functionality to everything that `net10.0` refers to.
### When to target `netx.0` vs. `netstandard`
-For existing code that targets .NET Standard 2.0 or later, there's no need to change the TFM to `net8.0` or a later TFM. .NET 8 and .NET 9 implement .NET Standard 2.1 and earlier. The only reason to retarget from .NET Standard to .NET 8+ would be to gain access to more runtime features, language features, or APIs. For example, to use C# 9, you need to target .NET 5 or a later version. You can multitarget .NET and .NET Standard to get access to newer features and still have your library available to other .NET implementations.
+For existing code that targets .NET Standard 2.0 or later, there's no need to change the TFM to `net8.0` or a later TFM. .NET 8, .NET 9, and .NET 10 implement .NET Standard 2.1 and earlier. The only reason to retarget from .NET Standard to .NET 8+ would be to gain access to more runtime features, language features, or APIs. For example, to use C# 9, you need to target .NET 5 or a later version. You can multitarget .NET and .NET Standard to get access to newer features and still have your library available to other .NET implementations.
> [!NOTE]
> If your project targets .NET Standard 1.x, we recommend you retarget it to .NET Standard 2.0 or .NET 8+. For more information, see [Warning emitted for .NET Standard 1.x targets](../core/compatibility/sdk/9.0/netstandard-warning.md).
@@ -109,13 +108,13 @@ Here are some guidelines for new code for .NET 5+:
- App components
- If you're using libraries to break down an application into several components, we recommend you target `net9.0`. For simplicity, it's best to keep all projects that make up your application on the same version of .NET. Then you can assume the same BCL features everywhere.
+ If you're using libraries to break down an application into several components, we recommend you target `net10.0`. For simplicity, it's best to keep all projects that make up your application on the same version of .NET. Then you can assume the same BCL features everywhere.
- Reusable libraries
If you're building reusable libraries that you plan to ship on NuGet, consider the trade-off between reach and available feature set. .NET Standard 2.0 is the latest version that's supported by .NET Framework, so it gives good reach with a fairly large feature set. We don't recommend targeting .NET Standard 1.x, as you'd limit the available feature set for a minimal increase in reach.
- If you don't need to support .NET Framework, you could target .NET Standard 2.1 or .NET 9. We recommend you skip .NET Standard 2.1 and go straight to .NET 9. Most widely used libraries multi-target for both .NET Standard 2.0 and .NET 5+. Supporting .NET Standard 2.0 gives you the most reach, while supporting .NET 5+ ensures you can leverage the latest platform features for customers that are already on .NET 5+.
+ If you don't need to support .NET Framework, you could target .NET Standard 2.1 or .NET 10. We recommend you skip .NET Standard 2.1 and go straight to .NET 10. Most widely used libraries multi-target for both .NET Standard 2.0 and .NET 5+. Supporting .NET Standard 2.0 gives you the most reach, while supporting .NET 5+ ensures you can leverage the latest platform features for customers that are already on .NET 5+.
### .NET Standard problems
@@ -131,7 +130,7 @@ Here are some problems with .NET Standard that help explain why .NET 5 and later
The separation of the API specification from its implementations results in complex mapping between API specification versions and implementation versions. This complexity is evident in the table shown earlier in this article and the instructions for how to interpret it.
- **Solution in .NET 5+:** There's no separation between a .NET 5+ API specification and its implementation. The result is a simplified TFM scheme. There's one TFM prefix for all workloads: `net9.0` is used for libraries, console apps, and web apps. The only variation is a [suffix that specifies platform-specific APIs](frameworks.md#net-5-os-specific-tfms) for a particular platform, such as `net9.0-windows`. Thanks to this TFM naming convention, you can easily tell whether a given app can use a given library. No version number equivalents table, like the one for .NET Standard, is needed.
+ **Solution in .NET 5+:** There's no separation between a .NET 5+ API specification and its implementation. The result is a simplified TFM scheme. There's one TFM prefix for all workloads: `net10.0` is used for libraries, console apps, and web apps. The only variation is a [suffix that specifies platform-specific APIs](frameworks.md#os-specific-tfms) for a particular platform, such as `net10.0-windows`. Thanks to this TFM naming convention, you can easily tell whether a given app can use a given library. No version number equivalents table, like the one for .NET Standard, is needed.
- Platform-unsupported exceptions at run time
diff --git a/docs/standard/serialization/system-text-json/migrate-from-newtonsoft.md b/docs/standard/serialization/system-text-json/migrate-from-newtonsoft.md
index cadca3a4c1e25..88cfbfa949b82 100644
--- a/docs/standard/serialization/system-text-json/migrate-from-newtonsoft.md
+++ b/docs/standard/serialization/system-text-json/migrate-from-newtonsoft.md
@@ -581,7 +581,7 @@ If you need to continue to use `Newtonsoft.Json` for certain target frameworks,
### Customize JSON format
-::: zone pivot="dotnet-9-0"
+::: zone pivot="dotnet-10-0,dotnet-9-0"
`JsonTextWriter` includes the following settings, for which has no equivalent:
diff --git a/docs/welcome.md b/docs/welcome.md
index 54da27453c9a5..c839edf746ca8 100644
--- a/docs/welcome.md
+++ b/docs/welcome.md
@@ -1,7 +1,7 @@
---
title: Welcome to .NET
description: Getting started with the .NET family of technologies.
-ms.date: 11/22/2024
+ms.date: 11/07/2025
ms.custom: "updateeachrelease"
---
# Welcome to .NET
@@ -25,8 +25,8 @@ Also follow the latest .NET events:
For information about the latest features added to the .NET implementations and supported languages, see the following articles:
-- [What's new in .NET 9](core/whats-new/dotnet-9/overview.md)
-- [What's new in C# 13](./csharp/whats-new/csharp-13.md)
+- [What's new in .NET 10](core/whats-new/dotnet-10/overview.md)
+- [What's new in C# 14](./csharp/whats-new/csharp-14.md)
- [What's new for Visual Basic](visual-basic/whats-new/index.md)
- [What's new in .NET Framework](framework/whats-new/index.md)
diff --git a/docs/zone-pivot-groups.yml b/docs/zone-pivot-groups.yml
index 2e67ac2189898..261cbf00b5063 100644
--- a/docs/zone-pivot-groups.yml
+++ b/docs/zone-pivot-groups.yml
@@ -60,8 +60,10 @@ groups:
title: .NET preview version
prompt: Choose a .NET version
pivots:
+ - id: dotnet-11-0
+ title: .NET 11 Preview
- id: dotnet-10-0
- title: .NET 10 Preview
+ title: .NET 10
- id: dotnet-9-0
title: .NET 9
- id: dotnet-8-0
@@ -70,6 +72,8 @@ groups:
title: .NET version
prompt: Choose a .NET version
pivots:
+ - id: dotnet-10-0
+ title: .NET 10
- id: dotnet-9-0
title: .NET 9
- id: dotnet-8-0
@@ -126,10 +130,10 @@ groups:
title: "24.04"
- id: os-linux-ubuntu-2204
title: "22.04"
+ - id: os-linux-ubuntu-2510
+ title: "25.10"
- id: os-linux-ubuntu-2504
title: "25.04"
- - id: os-linux-ubuntu-other
- title: "Other"
- id: openai-library
title: OpenAI Library
prompt: Choose a host service for OpenAI
diff --git a/includes/net-standard-1.0.md b/includes/net-standard-1.0.md
index bc0490c3ce312..61662d4af4451 100644
--- a/includes/net-standard-1.0.md
+++ b/includes/net-standard-1.0.md
@@ -2,7 +2,7 @@
| .NET implementation | Version support |
| -------------------------- | ------------------------------------------------------------------- |
-| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0 |
+| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0 |
| .NET Framework | 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
| Mono | 4.6, 5.4, 6.4 |
| Xamarin.iOS | 10.0, 10.14, 12.16 |
diff --git a/includes/net-standard-1.1.md b/includes/net-standard-1.1.md
index 7efc732613a73..3f8c6baee755b 100644
--- a/includes/net-standard-1.1.md
+++ b/includes/net-standard-1.1.md
@@ -1,15 +1,15 @@
.NET Standard 1.1 has 10,239 of the 37,118 available APIs.
-| .NET implementation | Version support |
-|----------------------------|------------------------------------------------------------|
-| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0 |
+| .NET implementation | Version support |
+|----------------------------|---------------------------------------------------------------------|
+| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0 |
| .NET Framework | 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
-| Mono | 4.6, 5.4, 6.4 |
-| Xamarin.iOS | 10.0, 10.14, 12.16 |
-| Xamarin.Mac | 3.0, 3.8, 5.16 |
-| Xamarin.Android | 7.0, 8.0, 10.0 |
-| Universal Windows Platform | 8.0, 8.1, 10.0, 10.0.16299, TBD |
-| Unity | 2018.1 |
+| Mono | 4.6, 5.4, 6.4 |
+| Xamarin.iOS | 10.0, 10.14, 12.16 |
+| Xamarin.Mac | 3.0, 3.8, 5.16 |
+| Xamarin.Android | 7.0, 8.0, 10.0 |
+| Universal Windows Platform | 8.0, 8.1, 10.0, 10.0.16299, TBD |
+| Unity | 2018.1 |
For more information, see [.NET Standard 1.1][1.1]. For an interactive table, see [.NET Standard versions](https://dotnet.microsoft.com/platform/dotnet-standard#versions).
diff --git a/includes/net-standard-1.2.md b/includes/net-standard-1.2.md
index 760a3fb47013d..203cd0c7fe3df 100644
--- a/includes/net-standard-1.2.md
+++ b/includes/net-standard-1.2.md
@@ -1,15 +1,15 @@
.NET Standard 1.2 has 10,285 of the 37,118 available APIs.
-| .NET implementation | Version support |
-| -------------------------- | -------------------------------------------------------------- |
-| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0 |
-| .NET Framework | 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
-| Mono | 4.6, 5.4, 6.4 |
-| Xamarin.iOS | 10.0, 10.14, 12.16 |
-| Xamarin.Mac | 3.0, 3.8, 5.16 |
-| Xamarin.Android | 7.0, 8.0, 10.0 |
-| Universal Windows Platform | 8.1, 10.0, 10.0.16299, TBD |
-| Unity | 2018.1 |
+| .NET implementation | Version support |
+| -------------------------- | -----------------------------------------------------------------|
+| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0 |
+| .NET Framework | 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
+| Mono | 4.6, 5.4, 6.4 |
+| Xamarin.iOS | 10.0, 10.14, 12.16 |
+| Xamarin.Mac | 3.0, 3.8, 5.16 |
+| Xamarin.Android | 7.0, 8.0, 10.0 |
+| Universal Windows Platform | 8.1, 10.0, 10.0.16299, TBD |
+| Unity | 2018.1 |
For more information, see [.NET Standard 1.2][1.2]. For an interactive table, see [.NET Standard versions](https://dotnet.microsoft.com/platform/dotnet-standard#versions).
diff --git a/includes/net-standard-1.3.md b/includes/net-standard-1.3.md
index 787006d0f14c9..652df71d6473c 100644
--- a/includes/net-standard-1.3.md
+++ b/includes/net-standard-1.3.md
@@ -1,15 +1,15 @@
.NET Standard 1.3 has 13,122 of the 37,118 available APIs.
-| .NET implementation | Version support |
-|----------------------------|------------------------------------------------------------|
-| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0 |
-| .NET Framework | 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
-| Mono | 4.6, 5.4, 6.4 |
-| Xamarin.iOS | 10.0, 10.14, 12.16 |
-| Xamarin.Mac | 3.0, 3.8, 5.16 |
-| Xamarin.Android | 7.0, 8.0, 10.0 |
-| Universal Windows Platform | 10.0, 10.0.16299, TBD |
-| Unity | 2018.1 |
+| .NET implementation | Version support |
+|----------------------------|------------------------------------------------------------------|
+| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0 |
+| .NET Framework | 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
+| Mono | 4.6, 5.4, 6.4 |
+| Xamarin.iOS | 10.0, 10.14, 12.16 |
+| Xamarin.Mac | 3.0, 3.8, 5.16 |
+| Xamarin.Android | 7.0, 8.0, 10.0 |
+| Universal Windows Platform | 10.0, 10.0.16299, TBD |
+| Unity | 2018.1 |
For more information, see [.NET Standard 1.3][1.3]. For an interactive table, see [.NET Standard versions](https://dotnet.microsoft.com/platform/dotnet-standard#versions).
diff --git a/includes/net-standard-1.4.md b/includes/net-standard-1.4.md
index 79da9c6f80a7b..e348d1983db33 100644
--- a/includes/net-standard-1.4.md
+++ b/includes/net-standard-1.4.md
@@ -1,15 +1,15 @@
.NET Standard 1.4 has 13,140 of the 37,118 available APIs.
-| .NET implementation | Version support |
-|----------------------------|------------------------------------------------------------|
-| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0 |
-| .NET Framework | 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
-| Mono | 4.6, 5.4, 6.4 |
-| Xamarin.iOS | 10.0, 10.14, 12.16 |
-| Xamarin.Mac | 3.0, 3.8, 5.16 |
-| Xamarin.Android | 7.0, 8.0, 10.0 |
-| Universal Windows Platform | 10.0, 10.0.16299, TBD |
-| Unity | 2018.1 |
+| .NET implementation | Version support |
+|----------------------------|------------------------------------------------------------------|
+| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0 |
+| .NET Framework | 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
+| Mono | 4.6, 5.4, 6.4 |
+| Xamarin.iOS | 10.0, 10.14, 12.16 |
+| Xamarin.Mac | 3.0, 3.8, 5.16 |
+| Xamarin.Android | 7.0, 8.0, 10.0 |
+| Universal Windows Platform | 10.0, 10.0.16299, TBD |
+| Unity | 2018.1 |
For more information, see [.NET Standard 1.4][1.4]. For an interactive table, see [.NET Standard versions](https://dotnet.microsoft.com/platform/dotnet-standard#versions).
diff --git a/includes/net-standard-1.5.md b/includes/net-standard-1.5.md
index 2fae7fa398f62..307733f4d435e 100644
--- a/includes/net-standard-1.5.md
+++ b/includes/net-standard-1.5.md
@@ -1,15 +1,15 @@
.NET Standard 1.5 has 13,355 of the 37,118 available APIs.
-| .NET implementation | Version support |
-|-----------------------------|------------------------------------------------------------|
-| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0 |
-| .NET Framework 1 | 4.6.1 2, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
-| Mono | 4.6, 5.4, 6.4 |
-| Xamarin.iOS | 10.0, 10.14, 12.16 |
-| Xamarin.Mac | 3.0, 3.8, 5.16 |
-| Xamarin.Android | 7.0, 8.0, 10.0 |
-| Universal Windows Platform | 10.0.16299, TBD |
-| Unity | 2018.1 |
+| .NET implementation | Version support |
+|-----------------------------|------------------------------------------------------------------|
+| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0 |
+| .NET Framework 1 | 4.6.1 2, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
+| Mono | 4.6, 5.4, 6.4 |
+| Xamarin.iOS | 10.0, 10.14, 12.16 |
+| Xamarin.Mac | 3.0, 3.8, 5.16 |
+| Xamarin.Android | 7.0, 8.0, 10.0 |
+| Universal Windows Platform | 10.0.16299, TBD |
+| Unity | 2018.1 |
1 The versions listed for .NET Framework apply to .NET Core 2.0 SDK and later versions of the tooling. Older versions used a different mapping for .NET Standard 1.5 and higher. You can [download tooling for .NET Core tools for Visual Studio 2015](https://github.com/dotnet/core/blob/main/release-notes/download-archives) if you cannot upgrade to Visual Studio 2017 or a later version.
diff --git a/includes/net-standard-1.6.md b/includes/net-standard-1.6.md
index 31bc52103602a..caa087d9d9331 100644
--- a/includes/net-standard-1.6.md
+++ b/includes/net-standard-1.6.md
@@ -1,15 +1,15 @@
.NET Standard 1.6 has 13,501 of the 37,118 available APIs.
-| .NET implementation | Version support |
-|-----------------------------|------------------------------------------------------------|
-| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0 |
-| .NET Framework 1 | 4.6.1 2, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
-| Mono | 4.6, 5.4, 6.4 |
-| Xamarin.iOS | 10.0, 10.14, 12.16 |
-| Xamarin.Mac | 3.0, 3.8, 5.16 |
-| Xamarin.Android | 7.0, 8.0, 10.0 |
-| Universal Windows Platform | 10.0.16299, TBD |
-| Unity | 2018.1 |
+| .NET implementation | Version support |
+|-----------------------------|------------------------------------------------------------------|
+| .NET and .NET Core | 1.0, 1.1, 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0 |
+| .NET Framework 1 | 4.6.1 2, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
+| Mono | 4.6, 5.4, 6.4 |
+| Xamarin.iOS | 10.0, 10.14, 12.16 |
+| Xamarin.Mac | 3.0, 3.8, 5.16 |
+| Xamarin.Android | 7.0, 8.0, 10.0 |
+| Universal Windows Platform | 10.0.16299, TBD |
+| Unity | 2018.1 |
1 The versions listed for .NET Framework apply to .NET Core 2.0 SDK and later versions of the tooling. Older versions used a different mapping for .NET Standard 1.5 and higher. You can [download tooling for .NET Core tools for Visual Studio 2015](https://github.com/dotnet/core/blob/main/release-notes/download-archives) if you cannot upgrade to Visual Studio 2017 or a later version.
diff --git a/includes/net-standard-2.0.md b/includes/net-standard-2.0.md
index 948c5bfbb6b1b..18ba3724ef4df 100644
--- a/includes/net-standard-2.0.md
+++ b/includes/net-standard-2.0.md
@@ -2,7 +2,7 @@
| .NET implementation | Version support |
| --------------------------- | -------------------------------------------------------- |
-| .NET and .NET Core | 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0 |
+| .NET and .NET Core | 2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0 |
| .NET Framework 1 | 4.6.1 2, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
| Mono | 5.4, 6.4 |
| Xamarin.iOS | 10.14, 12.16 |
diff --git a/includes/net-standard-2.1.md b/includes/net-standard-2.1.md
index 8cd9cf4668ee6..8770325702261 100644
--- a/includes/net-standard-2.1.md
+++ b/includes/net-standard-2.1.md
@@ -1,15 +1,15 @@
.NET Standard 2.1 has 37,118 of the 37,118 available APIs.
-| .NET implementation | Version support |
-|-----------------------------|-----------------------------------|
-| .NET and .NET Core | 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0 |
-| .NET Framework 1 | N/A2 |
-| Mono | 6.4 |
-| Xamarin.iOS | 12.16 |
-| Xamarin.Mac | 5.16 |
-| Xamarin.Android | 10.0 |
-| Universal Windows Platform | N/A3 |
-| Unity | 2021.2 |
+| .NET implementation | Version support |
+|-----------------------------|-----------------------------------------|
+| .NET and .NET Core | 3.0, 3.1, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0 |
+| .NET Framework 1 | N/A2 |
+| Mono | 6.4 |
+| Xamarin.iOS | 12.16 |
+| Xamarin.Mac | 5.16 |
+| Xamarin.Android | 10.0 |
+| Universal Windows Platform | N/A3 |
+| Unity | 2021.2 |
1 The versions listed for .NET Framework apply to .NET Core 2.0 SDK and later versions of the tooling. Older versions used a different mapping for .NET Standard 1.5 and higher. You can [download tooling for .NET Core tools for Visual Studio 2015](https://github.com/dotnet/core/blob/main/release-notes/download-archives) if you cannot upgrade to Visual Studio 2017 or a later version.
diff --git a/includes/preprocessor-symbols.md b/includes/preprocessor-symbols.md
index 7df83cb2fac70..f71658739a3ff 100644
--- a/includes/preprocessor-symbols.md
+++ b/includes/preprocessor-symbols.md
@@ -5,7 +5,7 @@ ms.custom: "updateeachrelease"
| ------------------| ------- | ------------------------------------------------ | -------------------------------------------------------------------- |
| .NET Framework | `NETFRAMEWORK`, `NET481`, `NET48`, `NET472`, `NET471`, `NET47`, `NET462`, `NET461`, `NET46`, `NET452`, `NET451`, `NET45`, `NET40`, `NET35`, `NET20` | `NET48_OR_GREATER`, `NET472_OR_GREATER`, `NET471_OR_GREATER`, `NET47_OR_GREATER`, `NET462_OR_GREATER`, `NET461_OR_GREATER`, `NET46_OR_GREATER`, `NET452_OR_GREATER`, `NET451_OR_GREATER`, `NET45_OR_GREATER`, `NET40_OR_GREATER`, `NET35_OR_GREATER`, `NET20_OR_GREATER` | |
| .NET Standard | `NETSTANDARD`, `NETSTANDARD2_1`, `NETSTANDARD2_0`, `NETSTANDARD1_6`, `NETSTANDARD1_5`, `NETSTANDARD1_4`, `NETSTANDARD1_3`, `NETSTANDARD1_2`, `NETSTANDARD1_1`, `NETSTANDARD1_0` | `NETSTANDARD2_1_OR_GREATER`, `NETSTANDARD2_0_OR_GREATER`, `NETSTANDARD1_6_OR_GREATER`, `NETSTANDARD1_5_OR_GREATER`, `NETSTANDARD1_4_OR_GREATER`, `NETSTANDARD1_3_OR_GREATER`, `NETSTANDARD1_2_OR_GREATER`, `NETSTANDARD1_1_OR_GREATER`, `NETSTANDARD1_0_OR_GREATER` | |
-| .NET 5+ (and .NET Core) | `NET`, `NET9_0`, `NET8_0`, `NET7_0`, `NET6_0`, `NET5_0`, `NETCOREAPP`, `NETCOREAPP3_1`, `NETCOREAPP3_0`, `NETCOREAPP2_2`, `NETCOREAPP2_1`, `NETCOREAPP2_0`, `NETCOREAPP1_1`, `NETCOREAPP1_0` | `NET9_0_OR_GREATER`, `NET8_0_OR_GREATER`, `NET7_0_OR_GREATER`, `NET6_0_OR_GREATER`, `NET5_0_OR_GREATER`, `NETCOREAPP3_1_OR_GREATER`, `NETCOREAPP3_0_OR_GREATER`, `NETCOREAPP2_2_OR_GREATER`, `NETCOREAPP2_1_OR_GREATER`, `NETCOREAPP2_0_OR_GREATER`, `NETCOREAPP1_1_OR_GREATER`, `NETCOREAPP1_0_OR_GREATER` | `ANDROID`, `BROWSER`, `IOS`, `MACCATALYST`, `MACOS`, `TVOS`, `WINDOWS`,
`[OS][version]` (for example `IOS15_1`),
`[OS][version]_OR_GREATER` (for example `IOS15_1_OR_GREATER`) |
+| .NET 5+ (and .NET Core) | `NET`, `NET10_0`, `NET9_0`, `NET8_0`, `NET7_0`, `NET6_0`, `NET5_0`, `NETCOREAPP`, `NETCOREAPP3_1`, `NETCOREAPP3_0`, `NETCOREAPP2_2`, `NETCOREAPP2_1`, `NETCOREAPP2_0`, `NETCOREAPP1_1`, `NETCOREAPP1_0` | `NET10_0_OR_GREATER`, `NET9_0_OR_GREATER`, `NET8_0_OR_GREATER`, `NET7_0_OR_GREATER`, `NET6_0_OR_GREATER`, `NET5_0_OR_GREATER`, `NETCOREAPP3_1_OR_GREATER`, `NETCOREAPP3_0_OR_GREATER`, `NETCOREAPP2_2_OR_GREATER`, `NETCOREAPP2_1_OR_GREATER`, `NETCOREAPP2_0_OR_GREATER`, `NETCOREAPP1_1_OR_GREATER`, `NETCOREAPP1_0_OR_GREATER` | `ANDROID`, `BROWSER`, `IOS`, `MACCATALYST`, `MACOS`, `TVOS`, `WINDOWS`,
`[OS][version]` (for example `IOS15_1`),
`[OS][version]_OR_GREATER` (for example `IOS15_1_OR_GREATER`) |
> [!NOTE]
>