From 0cbabb850038e8eaecc64761cda11c4b85547de0 Mon Sep 17 00:00:00 2001
From: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
Date: Fri, 14 Nov 2025 06:38:58 -0800
Subject: [PATCH 01/19] Freshness updates for STJ source generation (#49888)
---
.../csharp/BothModesNoOptions.cs | 13 ++--
.../csharp/JsonSerializerOptionsExample.cs | 59 -------------------
.../csharp/MetadataOnlyNoOptions.cs | 4 +-
.../csharp/ObjectProperties.cs | 3 +-
.../source-generation/csharp/Program.cs | 9 +--
.../csharp/SerializeOnlyWithOptions.cs | 4 +-
.../csharp/SystemTextJsonSamples.csproj | 2 +-
.../system-text-json/source-generation.md | 22 ++++---
8 files changed, 22 insertions(+), 94 deletions(-)
delete mode 100644 docs/standard/serialization/system-text-json/snippets/source-generation/csharp/JsonSerializerOptionsExample.cs
diff --git a/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/BothModesNoOptions.cs b/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/BothModesNoOptions.cs
index 0cd904f646864..7c10a05bab851 100644
--- a/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/BothModesNoOptions.cs
+++ b/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/BothModesNoOptions.cs
@@ -16,9 +16,7 @@ public class WeatherForecast
//
[JsonSourceGenerationOptions(WriteIndented = true)]
[JsonSerializable(typeof(WeatherForecast))]
- internal partial class SourceGenerationContext : JsonSerializerContext
- {
- }
+ internal partial class SourceGenerationContext : JsonSerializerContext { }
//
public class Program
@@ -35,7 +33,7 @@ public static void Main()
WeatherForecast? weatherForecast;
//
- weatherForecast = JsonSerializer.Deserialize(
+ weatherForecast = JsonSerializer.Deserialize(
jsonString, SourceGenerationContext.Default.WeatherForecast);
//
Console.WriteLine($"Date={weatherForecast?.Date}");
@@ -56,9 +54,7 @@ public static void Main()
{
TypeInfoResolver = SourceGenerationContext.Default
};
- weatherForecast = JsonSerializer.Deserialize(
- jsonString, typeof(WeatherForecast), sourceGenOptions)
- as WeatherForecast;
+ weatherForecast = JsonSerializer.Deserialize(jsonString, sourceGenOptions);
//
Console.WriteLine($"Date={weatherForecast?.Date}");
// output:
@@ -86,8 +82,7 @@ public static void Main()
TypeInfoResolver = SourceGenerationContext.Default
};
- jsonString = JsonSerializer.Serialize(
- weatherForecast, typeof(WeatherForecast), sourceGenOptions);
+ jsonString = JsonSerializer.Serialize(weatherForecast, sourceGenOptions);
//
Console.WriteLine(jsonString);
// output:
diff --git a/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/JsonSerializerOptionsExample.cs b/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/JsonSerializerOptionsExample.cs
deleted file mode 100644
index 0b782ed6680b3..0000000000000
--- a/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/JsonSerializerOptionsExample.cs
+++ /dev/null
@@ -1,59 +0,0 @@
-//
-using System.Text.Json;
-using System.Text.Json.Serialization;
-
-namespace JsonSerializerOptionsExample
-{
- public class WeatherForecast
- {
- public DateTime Date { get; set; }
- public int TemperatureCelsius { get; set; }
- public string? Summary { get; set; }
- }
-
- //
- [JsonSerializable(typeof(WeatherForecast))]
- internal partial class OptionsExampleContext : JsonSerializerContext
- {
- }
- //
-
- public class Program
- {
- public static void Main()
- {
- string jsonString = """
- {
- "date": "2019-08-01T00:00:00",
- "temperatureCelsius": 25,
- "summary": "Hot"
- }
- """;
- WeatherForecast? weatherForecast;
-
- //
- weatherForecast = JsonSerializer.Deserialize(
- jsonString,
- typeof(WeatherForecast),
- new OptionsExampleContext(
- JsonSerializerOptions.Web))
- as WeatherForecast;
- //
- Console.WriteLine($"Date={weatherForecast?.Date}");
- // output:
- //Date=8/1/2019 12:00:00 AM
-
- //
- jsonString = JsonSerializer.Serialize(
- weatherForecast,
- typeof(WeatherForecast),
- new OptionsExampleContext(
- JsonSerializerOptions.Web));
- //
- Console.WriteLine(jsonString);
- // output:
- //{ "date":"2019-08-01T00:00:00","temperatureCelsius":25,"summary":"Hot"}
- }
- }
-}
-//
diff --git a/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/MetadataOnlyNoOptions.cs b/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/MetadataOnlyNoOptions.cs
index 23577f182b50c..803d57a424b54 100644
--- a/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/MetadataOnlyNoOptions.cs
+++ b/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/MetadataOnlyNoOptions.cs
@@ -51,7 +51,7 @@ public static void Main()
// Serialize with context that selects metadata mode only for WeatherForecast only.
//
jsonString = JsonSerializer.Serialize(
- weatherForecast!,
+ weatherForecast,
MetadataOnlyWeatherForecastOnlyContext.Default.WeatherForecast);
//
Console.WriteLine(jsonString);
@@ -70,7 +70,7 @@ public static void Main()
// Serialize with context that selects metadata mode only.
//
jsonString = JsonSerializer.Serialize(
- weatherForecast!, MetadataOnlyContext.Default.WeatherForecast);
+ weatherForecast, MetadataOnlyContext.Default.WeatherForecast);
//
Console.WriteLine(jsonString);
// output:
diff --git a/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/ObjectProperties.cs b/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/ObjectProperties.cs
index 520907d06503a..6ec4ea85ce73d 100644
--- a/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/ObjectProperties.cs
+++ b/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/ObjectProperties.cs
@@ -1,5 +1,4 @@
//
-using System.Collections.Generic;
using System.Text.Json;
using System.Text.Json.Serialization;
@@ -27,7 +26,7 @@ public class Program
public static void Main()
{
//
- WeatherForecast wf = new() { Data = true, DataList = new List
string json = JsonSerializer.Serialize(wf, WeatherForecastContext.Default.WeatherForecast);
Console.WriteLine(json);
diff --git a/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/Program.cs b/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/Program.cs
index 792abc3da3428..66abebdd4f9df 100644
--- a/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/Program.cs
+++ b/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/Program.cs
@@ -1,9 +1,4 @@
-using System;
-using System.IO;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace SystemTextJsonSamples
+namespace SystemTextJsonSamples
{
public class Program
{
@@ -17,8 +12,6 @@ static void Main()
MetadataOnlyNoOptions.Program.Main();
Console.WriteLine("\n============================= SerializeOnlyWithOptions\n");
SerializeOnlyWithOptions.Program.Main();
- Console.WriteLine("\n============================= JsonSerializerOptionsExample\n");
- JsonSerializerOptionsExample.Program.Main();
Console.WriteLine("\n============================= ObjectProperties\n");
ObjectProperties.Program.Main();
}
diff --git a/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/SerializeOnlyWithOptions.cs b/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/SerializeOnlyWithOptions.cs
index 59f1858fd8dd0..498d145c30b93 100644
--- a/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/SerializeOnlyWithOptions.cs
+++ b/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/SerializeOnlyWithOptions.cs
@@ -27,7 +27,9 @@ public static void Main()
{
string jsonString;
WeatherForecast weatherForecast = new()
- { Date = DateTime.Parse("2019-08-01"), TemperatureCelsius = 25, Summary = "Hot" };
+ { Date = DateTime.Parse("2019-08-01"),
+ TemperatureCelsius = 25,
+ Summary = "Hot" };
// Serialize using TypeInfo provided by the context
// and options specified by [JsonSourceGenerationOptions].
diff --git a/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/SystemTextJsonSamples.csproj b/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/SystemTextJsonSamples.csproj
index 30b36c1058177..658f626f4bdd1 100644
--- a/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/SystemTextJsonSamples.csproj
+++ b/docs/standard/serialization/system-text-json/snippets/source-generation/csharp/SystemTextJsonSamples.csproj
@@ -2,7 +2,7 @@
Exe
- net9.0
+ net10.0SystemTextJsonSamples.Programenableenable
diff --git a/docs/standard/serialization/system-text-json/source-generation.md b/docs/standard/serialization/system-text-json/source-generation.md
index bcd19481182cd..dc16d62c62dad 100644
--- a/docs/standard/serialization/system-text-json/source-generation.md
+++ b/docs/standard/serialization/system-text-json/source-generation.md
@@ -1,7 +1,7 @@
---
title: How to use source generation in System.Text.Json
description: "Learn how to use source generation in System.Text.Json."
-ms.date: 10/09/2023
+ms.date: 11/13/2025
no-loc: [System.Text.Json]
dev_langs:
- "csharp"
@@ -15,7 +15,7 @@ ms.topic: how-to
# How to use source generation in System.Text.Json
-Source generation in System.Text.Json is available in .NET 6 and later versions. When used in an app, the app's language version must be C# 9.0 or later. This article shows you how to use source-generation-backed serialization in your apps.
+This article shows you how to use source-generation-backed System.Text.Json serialization in your apps.
For information about the different source-generation modes, see [Source-generation modes](source-generation-modes.md).
@@ -29,15 +29,15 @@ To use source generation with all defaults (both modes, default options):
- Takes a instance, or
- Takes a instance, or
- - Takes a instance and you've set its property to the `Default` property of the context type (.NET 7 and later only).
+ - Takes a instance and you've set its property to the `Default` property of the context type.
-By default, both source generation modes are used if you don't specify one. For information about how to specify the mode to use, see [Specify source generation mode](#specify-source-generation-mode) later in this article.
+By default, both source generation modes (*metadata-based* and *serialization optimization*) are used if you don't specify one. For information about how to specify the mode to use, see [Specify source generation mode](#specify-source-generation-mode) later in this article.
-Here's the type that is used in the following examples:
+Here's the type that's used in the following examples:
:::code language="csharp" source="snippets/source-generation/csharp/BothModesNoOptions.cs" id="WF":::
-Here's the context class configured to do source generation for the preceding `WeatherForecast` class:
+Here's the context class configured to generate source for the preceding `WeatherForecast` class:
:::code language="csharp" source="snippets/source-generation/csharp/BothModesNoOptions.cs" id="DefineContext":::
@@ -45,7 +45,7 @@ The types of `WeatherForecast` members don't need to be explicitly specified wit
:::code language="csharp" source="snippets/source-generation/csharp/ObjectProperties.cs" id="WF":::
-And you know that at runtime it may have `boolean` and `int` objects:
+And you know that at run time it might have `boolean` and `int` objects:
:::code language="csharp" source="snippets/source-generation/csharp/ObjectProperties.cs" id="WFInit":::
@@ -95,7 +95,7 @@ Here are the preceding examples in a complete program:
## Specify source-generation mode
-You can specify metadata-based mode or serialization-optimization mode for an entire context, which may include multiple types. Or you can specify the mode for an individual type. If you do both, the mode specification for a type wins.
+You can specify metadata-based mode or serialization-optimization mode for an entire context, which might include multiple types. Or you can specify the mode for an individual type. If you do both, the mode specification for a type wins.
- For an entire context, use the property.
- For an individual type, use the property.
@@ -161,9 +161,7 @@ services.AddControllers().AddJsonOptions(
```
> [!NOTE]
-> , or fast-path serialization, isn't supported for asynchronous serialization.
->
-> In .NET 7 and earlier versions, this limitation also applies to synchronous overloads of that accept a . Starting with .NET 8, even though streaming serialization requires metadata-based models, it will fall back to fast-path if the payloads are known to be small enough to fit in the predetermined buffer size. For more information, see .
+> , or *fast-path* serialization, isn't supported for asynchronous serialization. Even though streaming serialization requires metadata-based models, it falls back to fast-path if the payloads are known to be small enough to fit in the predetermined buffer size. For more information, see .
## Disable reflection defaults
@@ -218,7 +216,7 @@ If you call a method that lets you pass in your own instance of `Utf8JsonWriter`
If you create and use a context instance by calling the constructor that takes a `JsonSerializerOptions` instance, the supplied instance will be used instead of the options specified by `JsonSourceGenerationOptionsAttribute`.
-Here are the preceding examples in a complete program:
+The following code shows the preceding examples in a complete program:
:::code language="csharp" source="snippets/source-generation/csharp/SerializeOnlyWithOptions.cs" id="All":::
From e32fa7781dc022514f3340166451fd28e167c8e0 Mon Sep 17 00:00:00 2001
From: Krerkkiat Chusap
Date: Fri, 14 Nov 2025 21:41:42 +0700
Subject: [PATCH 02/19] Revise wording in unit-testing-csharp-with-nunit.md
(#49902)
We created the directory in the previous step already.
---
docs/core/testing/unit-testing-csharp-with-nunit.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/core/testing/unit-testing-csharp-with-nunit.md b/docs/core/testing/unit-testing-csharp-with-nunit.md
index 8e5e995eaf354..e4f60868fa764 100644
--- a/docs/core/testing/unit-testing-csharp-with-nunit.md
+++ b/docs/core/testing/unit-testing-csharp-with-nunit.md
@@ -74,7 +74,7 @@ Next, create the *PrimeService.Tests* directory. The following outline shows the
/PrimeService.Tests
```
-Make the *PrimeService.Tests* directory the current directory and create a new project using the following command:
+Change the directory to the *PrimeService.Tests* directory and create a new project using the following command:
```dotnetcli
dotnet new nunit
From dcbc445a39a180d8fc3c7a018f76657c0bba1f50 Mon Sep 17 00:00:00 2001
From: Bill Wagner
Date: Fri, 14 Nov 2025 10:37:42 -0500
Subject: [PATCH 03/19] Update code snippet reference for enumeration method
(#49890)
Fixes UUF. The referenced snippet was incorrect.
---
.../how-to-create-a-new-method-for-an-enumeration.md | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/csharp/programming-guide/classes-and-structs/how-to-create-a-new-method-for-an-enumeration.md b/docs/csharp/programming-guide/classes-and-structs/how-to-create-a-new-method-for-an-enumeration.md
index 05275e0968354..de3d6a49a61bd 100644
--- a/docs/csharp/programming-guide/classes-and-structs/how-to-create-a-new-method-for-an-enumeration.md
+++ b/docs/csharp/programming-guide/classes-and-structs/how-to-create-a-new-method-for-an-enumeration.md
@@ -24,9 +24,9 @@ Beginning with C# 14, you can declare *extension members* in an extension block.
You call these new extension properties as though they're declared on the extended type:
-:::code language="csharp" source="./snippets/ExtensionMembers/CustomExtensionMembers.cs" id="EnumExtensionMembers":::
+:::code language="csharp" source="./snippets/ExtensionMembers/CustomExtensionMembers.cs" id="ExampleExtendEnum":::
-You can learn more about the new extension members in the article on [extension members](./extension-methods.md) and in the language reference article on the ['extension` keyword](../../language-reference/keywords/extension.md).
+You can learn more about the new extension members in the article on [extension members](./extension-methods.md) and in the language reference article on the [`extension` keyword](../../language-reference/keywords/extension.md).
## See also
From 529a7e1aa6272293477ba99c079f452d7b1206d4 Mon Sep 17 00:00:00 2001
From: Omair Majid
Date: Fri, 14 Nov 2025 13:04:31 -0500
Subject: [PATCH 04/19] .NET 10 is available on Fedora 41 as well (#49897)
---
docs/core/install/linux-fedora.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/docs/core/install/linux-fedora.md b/docs/core/install/linux-fedora.md
index a0284616faf21..332565cfc2e7a 100644
--- a/docs/core/install/linux-fedora.md
+++ b/docs/core/install/linux-fedora.md
@@ -26,7 +26,7 @@ The following table is a list of currently supported .NET releases and the versi
|--------|----------|
| 43 | 10, 9, 8 |
| 42 | 10, 9, 8 |
-| 41 | 9, 8 |
+| 41 | 10, 9, 8 |
[!INCLUDE [versions-not-supported](includes/versions-not-supported.md)]
From 94209655cf7bf90b047f9f5c206a80cdec8b84e7 Mon Sep 17 00:00:00 2001
From: Omair Majid
Date: Fri, 14 Nov 2025 13:05:05 -0500
Subject: [PATCH 05/19] .NET 10 is available on RHEL 8 too (#49894)
---
docs/core/install/linux-rhel.md | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/core/install/linux-rhel.md b/docs/core/install/linux-rhel.md
index 0bad631242e12..8d4c3e09e5308 100644
--- a/docs/core/install/linux-rhel.md
+++ b/docs/core/install/linux-rhel.md
@@ -15,7 +15,7 @@ ms.custom: linux-related-content
## Register your Red Hat subscription
-To install .NET from Red Hat on RHEL, you first need to register using the Red Hat Subscription Manager. If this hasn't been done on your system, or if you're unsure, see the [Red Hat Product Documentation for .NET](https://access.redhat.com/documentation/en-us/net/8.0).
+To install .NET from Red Hat on RHEL, you first need to register using the Red Hat Subscription Manager. If this hasn't been done on your system, or if you're unsure, see the [Red Hat Product Documentation for .NET](https://access.redhat.com/documentation/en-us/net/10.0).
> [!IMPORTANT]
> The previous statement doesn't apply to CentOS Stream.
@@ -28,7 +28,7 @@ The following table is a list of currently supported .NET releases on both RHEL
|---------------------------------------|----------|
| [RHEL 10](#rhel-10) | 10, 9, 8 |
| [RHEL 9](#rhel-9) | 10, 9, 8 |
-| [RHEL 8](#rhel-8) | 9, 8 |
+| [RHEL 8](#rhel-8) | 10, 9, 8 |
| [CentOS Stream 10](#centos-stream-10) | 10, 9, 8 |
| [CentOS Stream 9](#centos-stream-9) | 10, 9, 8 |
@@ -60,7 +60,7 @@ The following table is a list of currently supported .NET releases on both RHEL
.NET is included in the [AppStream repositories](https://access.redhat.com/support/policy/updates/rhel-app-streams-life-cycle) for RHEL 8.
-[!INCLUDE [linux-dnf-install-90](includes/linux-install-90-dnf.md)]
+[!INCLUDE [linux-dnf-install-100](includes/linux-install-100-dnf.md)]
## CentOS Stream 10
From 9c723a16d43bacf19fa905f5fdc3cfd6e2ee9169 Mon Sep 17 00:00:00 2001
From: Copilot <198982749+Copilot@users.noreply.github.com>
Date: Fri, 14 Nov 2025 10:07:38 -0800
Subject: [PATCH 06/19] Remove Orleans multi-clustering documentation (#49892)
---
.openpublishing.redirection.orleans.json | 20 +++
.../global-single-instance.md | 48 --------
.../multi-cluster-support/gossip-channels.md | 70 -----------
.../multi-cluster-configuration.md | 115 ------------------
.../multi-cluster-support/overview.md | 36 ------
.../silo-configuration.md | 77 ------------
.../event-sourcing/replicated-instances.md | 2 +-
.../list-of-options-classes.md | 1 -
docs/orleans/index.yml | 3 -
docs/orleans/toc.yml | 12 --
10 files changed, 21 insertions(+), 363 deletions(-)
delete mode 100644 docs/orleans/deployment/multi-cluster-support/global-single-instance.md
delete mode 100644 docs/orleans/deployment/multi-cluster-support/gossip-channels.md
delete mode 100644 docs/orleans/deployment/multi-cluster-support/multi-cluster-configuration.md
delete mode 100644 docs/orleans/deployment/multi-cluster-support/overview.md
delete mode 100644 docs/orleans/deployment/multi-cluster-support/silo-configuration.md
diff --git a/.openpublishing.redirection.orleans.json b/.openpublishing.redirection.orleans.json
index 7bd96a87a188f..667ca31b549bc 100644
--- a/.openpublishing.redirection.orleans.json
+++ b/.openpublishing.redirection.orleans.json
@@ -43,6 +43,26 @@
{
"source_path_from_root": "/docs/orleans/implementation/cluster-configuration.md",
"redirect_url": "/dotnet/orleans/implementation/cluster-management"
+ },
+ {
+ "source_path_from_root": "/docs/orleans/deployment/multi-cluster-support/global-single-instance.md",
+ "redirect_url": "/dotnet/orleans/deployment/"
+ },
+ {
+ "source_path_from_root": "/docs/orleans/deployment/multi-cluster-support/gossip-channels.md",
+ "redirect_url": "/dotnet/orleans/deployment/"
+ },
+ {
+ "source_path_from_root": "/docs/orleans/deployment/multi-cluster-support/multi-cluster-configuration.md",
+ "redirect_url": "/dotnet/orleans/deployment/"
+ },
+ {
+ "source_path_from_root": "/docs/orleans/deployment/multi-cluster-support/overview.md",
+ "redirect_url": "/dotnet/orleans/deployment/"
+ },
+ {
+ "source_path_from_root": "/docs/orleans/deployment/multi-cluster-support/silo-configuration.md",
+ "redirect_url": "/dotnet/orleans/deployment/"
}
]
diff --git a/docs/orleans/deployment/multi-cluster-support/global-single-instance.md b/docs/orleans/deployment/multi-cluster-support/global-single-instance.md
deleted file mode 100644
index 5a43ef2fa287f..0000000000000
--- a/docs/orleans/deployment/multi-cluster-support/global-single-instance.md
+++ /dev/null
@@ -1,48 +0,0 @@
----
-title: Global single-instance grains
-description: Learn about global single-instance grains and coordination attributes in .NET Orleans.
-ms.date: 05/23/2025
-ms.topic: conceptual
----
-
-# Grain coordination attributes
-
-You can indicate when and how clusters should coordinate their grain directories for a particular grain class. The means you want the same behavior as when running Orleans in a single global cluster: route all calls to a single activation of the grain. Conversely, the `[OneInstancePerCluster]` attribute indicates that each cluster can have its independent activation. This is appropriate if you don't want communication between clusters.
-
-Place the attributes on grain implementations. For example:
-
-```csharp
-using Orleans.MultiCluster;
-
-[GlobalSingleInstance]
-public class MyGlobalGrain : Orleans.Grain, IMyGrain
-{
- // ...
-}
-
-[OneInstancePerCluster]
-public class MyLocalGrain : Orleans.Grain, IMyGrain
-{
- // ...
-}
-```
-
-If a grain class doesn't specify either of these attributes, it defaults to . However, it defaults to if you set the configuration parameter to `true`.
-
-## Protocol for global single-instance grains
-
-When you access a global-single-instance (GSI) grain, and no activation is known to exist, Orleans executes a special GSI activation protocol before activating a new instance. Specifically, it sends a request to all other clusters in the current [multi-cluster configuration](multi-cluster-configuration.md) to check if they already have an activation for this grain. If all responses are negative, Orleans creates a new activation in the current cluster. Otherwise, it uses the remote activation (and caches a reference to it in the local directory).
-
-## Protocol for one-instance-per-cluster grains
-
-There is no inter-cluster communication for one-instance-per-cluster grains. They simply use the standard Orleans mechanism independently within each cluster. Inside the Orleans framework itself, the following grain classes are marked with the :
-
-- `ManagementGrain`
-- `SystemTargetBasedMembershipTable`
-- `GrainBasedReminderTable`
-
-## Doubtful activations
-
-If the GSI protocol doesn't receive conclusive responses from all clusters after 3 retries (or the number specified by the configuration parameter), it optimistically creates a new local "doubtful" activation, favoring availability over consistency.
-
-"Doubtful" means the activation might be a duplicate because a remote cluster that didn't respond during the GSI protocol might still have an activation for this grain. Therefore, periodically, every 30 seconds (or the interval specified by the configuration parameter), Orleans runs the GSI protocol again for all doubtful activations. This process ensures that once communication between clusters is restored, the system can detect and remove duplicate activations.
diff --git a/docs/orleans/deployment/multi-cluster-support/gossip-channels.md b/docs/orleans/deployment/multi-cluster-support/gossip-channels.md
deleted file mode 100644
index d81d80e9e6e19..0000000000000
--- a/docs/orleans/deployment/multi-cluster-support/gossip-channels.md
+++ /dev/null
@@ -1,70 +0,0 @@
----
-title: Multi-cluster communication
-description: Learn about multi-cluster communication in .NET Orleans.
-ms.date: 05/23/2025
-ms.topic: conceptual
----
-
-# Multi-cluster communication
-
-You must configure the network so that any Orleans silo can connect to any other Orleans silo via TCP/IP, regardless of where in the world it's located. Exactly how you achieve this is outside the scope of Orleans, as it depends on how and where you deploy the silos.
-
-For example, on Azure, you can use VNets to connect multiple deployments within a region and gateways to connect VNets across different regions.
-
-## Cluster identifier
-
-Each cluster has its own unique cluster ID. You must specify the cluster ID in the global configuration.
-
-Cluster IDs cannot be empty, nor can they contain commas. Also, if you use Azure Table Storage, cluster IDs cannot contain characters forbidden for row keys (/, \, #, ?).
-
-We recommend using very short strings for cluster IDs because they are transmitted frequently and might be stored in storage by some log-view providers.
-
-## Cluster gateways
-
-Each cluster automatically designates a subset of its active silos to serve as *cluster gateways*. Cluster gateways directly advertise their IP addresses to other clusters and can thus serve as "points of first contact". By default, Orleans designates at most 10 silos (or the number configured as ) as cluster gateways.
-
-Communication between silos in different clusters does *not* always pass through a gateway. Once a silo learns and caches the location of a grain activation (regardless of the cluster), it sends messages directly to that silo, even if the target silo isn't a cluster gateway.
-
-## Gossip
-
-Gossip is a mechanism for clusters to share configuration and status information. As the name suggests, gossip is decentralized and bidirectional: each silo communicates directly with other silos (both in the same cluster and in other clusters) to exchange information in both directions.
-
-**Content**: Gossip contains some or all of the following information:
-
-- The current time-stamped [multi-cluster configuration](multi-cluster-configuration.md).
-- A dictionary containing information about cluster gateways. The key is the silo address, and the value contains (1) a timestamp, (2) the cluster ID, and (3) a status (either active or inactive).
-
-**Fast & Slow Propagation**: When a gateway changes its status, or when an operator injects a new configuration, this gossip information is immediately sent to all silos, clusters, and gossip channels. This happens quickly but isn't reliable. If the message is lost for any reason (for example,, races, broken sockets, silo failures), periodic background gossip ensures the information eventually spreads, albeit more slowly. All information eventually propagates everywhere and is highly resilient to occasional message loss and failures.
-
-All gossip data is timestamped. This ensures that newer information replaces older information, regardless of the relative timing of messages. For example, newer multi-cluster configurations replace older ones, and newer information about a gateway replaces older information about that gateway. For more details on the representation of gossip data, see the `MultiClusterData` class. It has a `Merge` method that combines gossip data, resolving conflicts using timestamps.
-
-## Gossip channels
-
-When a silo first starts, or when it restarts after a failure, it needs a way to **bootstrap the gossip**. This is the role of the *gossip channel*, which you can configure in the [Silo Configuration](silo-configuration.md). On startup, a silo fetches all information from the gossip channels. After startup, a silo continues gossiping periodically every 30 seconds (or the interval configured as `BackgroundGossipInterval`). Each time, it synchronizes its gossip information with a partner randomly selected from all cluster gateways and gossip channels.
-
-- Although not strictly required, we recommend always configuring at least two gossip channels in distinct regions for better availability.
-- Latency of communication with gossip channels isn't critical.
-- Multiple different services can use the same gossip channel without interference, as long as the `ServiceId` `Guid` (specified in their respective configurations) is distinct.
-- There's no strict requirement that all silos use the same gossip channels, as long as the channels are sufficient to let a silo initially connect with the "gossiping community" when it starts. However, if a gossip channel isn't part of a silo's configuration, and that silo is a gateway, it doesn't push its status updates to that channel (fast propagation). Therefore, it might take longer for those updates to reach the channel via periodic background gossip (slow propagation).
-
-### Azure Table-based gossip channel
-
-We have implemented a gossip channel based on Azure Tables. The configuration specifies standard connection strings used for Azure accounts. For example, a configuration could specify two gossip channels with separate Azure storage accounts `usa` and `europe` as follows:
-
-```csharp
-var silo = new HostBuilder()
- .UseOrleans(builder =>
- {
- builder.Configure(options =>
- {
- options.GossipChannels.Add(
- "AzureTable",
- "DefaultEndpointsProtocol=https;AccountName=usa;AccountKey=...");
- options.GossipChannels.Add(
- "AzureTable",
- "DefaultEndpointsProtocol=https;AccountName=europe;AccountKey=...")
- });
- })
-```
-
-Multiple different services can use the same gossip channel without interference, as long as the `ServiceId` `Guid` specified by their respective configurations is distinct.
diff --git a/docs/orleans/deployment/multi-cluster-support/multi-cluster-configuration.md b/docs/orleans/deployment/multi-cluster-support/multi-cluster-configuration.md
deleted file mode 100644
index 1d6e2ad045944..0000000000000
--- a/docs/orleans/deployment/multi-cluster-support/multi-cluster-configuration.md
+++ /dev/null
@@ -1,115 +0,0 @@
----
-title: Multi-cluster configuration
-description: Learn about multi-cluster configuration in .NET Orleans.
-ms.date: 05/23/2025
-ms.topic: conceptual
----
-
-# Multi-cluster configuration
-
-The multi-cluster configuration determines which clusters are currently part of the multi-cluster. It doesn't change automatically; instead, the operator controls it. Thus, it's quite different from the membership mechanism used within a cluster, which automatically determines the set of silos that are part of that cluster.
-
-We use the following terminology for clusters in a service:
-
-- A cluster is *active* if it has at least one active silo, and *inactive* otherwise.
-- A cluster is *joined* if it is part of the current multi-cluster configuration, and *non-joined* otherwise.
-
-Being active/inactive is independent of being joined/non-joined: all four combinations are possible.
-
-All clusters for a particular service connect via a [gossip network](gossip-channels.md). The gossip network propagates configuration and status information.
-
-## Inject a configuration
-
-An operator issues configuration changes by injecting them into the multi-cluster network. You can inject configurations into any cluster, and they spread from there to all active clusters. Each new configuration consists of a list of cluster IDs that form the multi-cluster. It also has a UTC timestamp used to track its propagation through the gossip network.
-
-Initially, the multi-cluster configuration is null, meaning the multi-cluster list is empty (contains no clusters). Thus, the operator *must* initially inject a multi-cluster configuration. Once injected, this configuration persists in all connected silos (while running) and in all specified gossip channels (if those channels are persistent).
-
-We impose some restrictions on injecting new configurations that an operator must follow:
-
-- Each new configuration may add several clusters, or remove some clusters (but not both at the same time).
-- An operator should not issue a new configuration while a previous configuration change is still processing.
-
-These restrictions ensure that protocols like the single-instance protocol can correctly maintain the mutual exclusion of activations, even during configuration changes.
-
-### Management grain
-
-You can inject multi-cluster configurations on any node in any cluster using the Orleans Management Grain.
-For example, to inject a multi-cluster configuration consisting of the three clusters { us1, eu1, us2 }, pass a string enumerable to the management grain:
-
-```csharp
-var clusters = "us1,eu1,us2".Split(',');
-var mgtGrain = client.GetGrain(0);
-mgtGrain.InjectMultiClusterConfiguration(clusters, "my comment here"));
-```
-
-The first argument to is a collection of cluster IDs that defines the new multi-cluster configuration. The second argument is an optional comment string that you can use to tag configurations with arbitrary information, such as who injected them and why.
-
-There's an optional third argument, a boolean named `checkForLaggingSilosFirst`, which defaults to true. It means the system performs a best-effort check to see if any silos anywhere haven't caught up to the current configuration yet. If it finds such a silo, it rejects the change. This helps detect violations of the restriction that only one configuration change should be pending at a time (though it cannot guarantee this under all circumstances).
-
-### Default configuration
-
-In situations where the multi-cluster configuration is known in advance and the deployment is fresh every time (for testing), you might want to supply a default configuration. The global configuration supports an optional attribute which takes a comma-separated list of cluster IDs:
-
-```csharp
-var silo = new HostBuilder()
- .UseOrleans(builder =>
- {
- builder.Configure(options =>
- {
- options.DefaultMultiCluster = new[] { "us1", "eu1", "us2" };
- })
- })
- .Build();
-```
-
-After a silo starts with this setting, it checks if the current multi-cluster configuration is null. If it is, the silo injects the given configuration with the current UTC timestamp.
-
-> [!WARNING]
-> Persistent multi-cluster gossip channels (based on AzureTable) retain the last injected configuration unless they are deleted explicitly. In that case, specifying a `DefaultMultiCluster` has no effect when re-deploying a cluster because the configuration stored in the gossip channels is not null.>
-
-### Gossip channel
-
-An operator can also inject the configuration directly into the gossip channel. Periodic background gossip automatically picks up and propagates changes in the channel, although possibly very slowly (using the management grain is much faster). A rough estimate of the propagation time is 30 seconds (or the gossip interval specified in the global configuration) times the binary logarithm of the total number of silos across all clusters. However, since gossip pairs are selected randomly, propagation can be much quicker or much slower.
-
-If you use the Azure table-based gossip channel, operators can inject a new configuration simply by editing the configuration record in the `OrleansGossipTable` using a tool for editing Azure table data. The configuration record has the following format:
-
-| Name | Type | Value |
-|-----------------|----------|---------------------------------------------------------|
-| PartitionKey | String | the ServiceId |
-| RowKey | String | "CONFIG" |
-| Clusters | String | comma-separated list of cluster IDs, for example, "us1,eu1,us2" |
-| Comment | String | optional comment |
-| GossipTimestamp | DateTime | UTC timestamp for the configuration |
-
-> [!NOTE]
-> When editing this record in storage, you must also set the `GossipTimestamp` to a newer value than its current value (otherwise, the change is ignored). The most convenient and recommended way to do this is to *delete the `GossipTimestamp` field*. The gossip channel implementation then automatically replaces it with a correct, current timestamp (it uses the Azure Table Timestamp).
-
-## Cluster procedures
-
-Adding or removing a cluster from the multi-cluster often needs coordination within a larger context. We recommend always following the procedures described below when adding or removing clusters from the multi-cluster.
-
-### Procedure for adding a cluster
-
-1. Start a new Orleans cluster and wait until all silos are up and running.
-1. Inject a configuration that includes the new cluster.
-1. Start routing user requests to the new cluster.
-
-### Procedure for removing a cluster
-
-1. Stop routing new user requests to the cluster.
-1. Inject a configuration that no longer includes the cluster.
-1. Stop all silos of the cluster.
-
-Once you remove a cluster this way, you can re-add it by following the procedure for adding a new cluster.
-
-## Activity on non-joined clusters
-
-There can be brief, temporary periods when a cluster is both active and non-joined:
-
-- A freshly started cluster might start executing code before it's included in the multi-cluster configuration (between steps 1 and 2 of the procedure for adding a cluster).
-- A cluster being decommissioned might still execute code before the silos shut down (between steps 2 and 3 of the procedure for removing a cluster).
-
-During these intermediate situations, the following are possible:
-
-- For global-single-instance grains: A grain might have a duplicate activation on a non-joined cluster.
-- For versioned grains: Activations on non-joined clusters don't receive notifications when the grain state changes.
diff --git a/docs/orleans/deployment/multi-cluster-support/overview.md b/docs/orleans/deployment/multi-cluster-support/overview.md
deleted file mode 100644
index 328960a67d494..0000000000000
--- a/docs/orleans/deployment/multi-cluster-support/overview.md
+++ /dev/null
@@ -1,36 +0,0 @@
----
-title: Multi-cluster support
-description: Learn about multi-cluster support in .NET Orleans.
-ms.date: 05/23/2025
-ms.topic: overview
----
-
-# Multi-cluster support
-
-> [!IMPORTANT]
-> Multi-Cluster support was removed in Orleans v2. The documentation below refers to Orleans v1.
-
-Orleans v1.3.0 added support for federating several Orleans clusters into a loosely connected *multi-cluster* that acts as a single service. Multi-clusters facilitate *geo-distribution* as a service, making it easier to run an Orleans application in multiple data centers around the world. You can also run a multi-cluster within a single datacenter to get better failure and performance isolation.
-
-All mechanisms are designed with particular attention to:
-
-1. Minimize communication between clusters.
-1. Let each cluster run autonomously, even if other clusters fail or become unreachable.
-
-## Configuration and operation
-
-Below, we document how to configure and operate a multi-cluster.
-
-[**Communication**](gossip-channels.md): Clusters communicate via the same silo-to-silo connections used within a cluster. To exchange status and configuration information, clusters use a gossip mechanism and gossip channel implementations.
-
-[**Silo Configuration**](silo-configuration.md): You need to configure silos so they know which cluster they belong to (each cluster is identified by a unique string). Also, you need to configure each silo with connection strings that allow it to connect to one or more [gossip channels](gossip-channels.md) on startup.
-
-[**Multi-Cluster Configuration Injection**](multi-cluster-configuration.md): At runtime, the service operator can specify and/or change the *multi-cluster configuration*, which contains a list of cluster IDs, to specify which clusters are part of the current multi-cluster. You do this by calling the management grain in any one of the clusters.
-
-## Multi-cluster grains
-
-Below, we document how to use multi-cluster functionality at the application level.
-
-[**Global-Single-Instance Grains**](global-single-instance.md): You can indicate when and how clusters should coordinate their grain directories for a particular grain class. The means you want the same behavior as when running Orleans in a single global cluster: route all calls to a single activation of the grain. Conversely, the indicates that each cluster can have its independent activation. This is appropriate if you don't want communication between clusters.
-
-**Log-view grains** *(not in v1.3.0)*: A special type of grain that uses a new API, similar to event sourcing, for synchronizing or persisting grain state. You can use it to automatically and efficiently synchronize the state of a grain between clusters and with storage. Because its synchronization algorithms are safe for use with reentrant grains and are optimized for batching and replication, it can perform better than standard grains when a grain is frequently accessed in multiple clusters and/or written to storage frequently. Support for log-view grains isn't part of the main branch yet. We have a prerelease including samples and some documentation in the [`geo-orleans` branch](https://github.com/sebastianburckhardt/orleans/tree/geo-samples). It's currently being evaluated in production by an early adopter.
diff --git a/docs/orleans/deployment/multi-cluster-support/silo-configuration.md b/docs/orleans/deployment/multi-cluster-support/silo-configuration.md
deleted file mode 100644
index a18d3ff12669f..0000000000000
--- a/docs/orleans/deployment/multi-cluster-support/silo-configuration.md
+++ /dev/null
@@ -1,77 +0,0 @@
----
-title: Silo configuration
-description: Learn about silo configuration for multi-cluster support in .NET Orleans.
-ms.date: 05/23/2025
-ms.topic: conceptual
-ms.custom: sfi-ropc-nochange
----
-
-# Orleans silo configuration
-
-For a quick overview, we show all relevant configuration parameters (including optional ones) in XML syntax below:
-
-```xml
-
-
-
-
-
-
-
-
-
-
-```
-
-```csharp
-var silo = new HostBuilder()
- .UseOrleans(builder =>
- {
- builder.Configure(options =>
- {
- options.ClusterId = "us3";
- options.ServiceId = "myawesomeservice";
- })
- .Configure(options =>
- {
- options.HasMultiClusterNetwork = true;
- options.DefaultMultiCluster = new[] { "us1", "eu1", "us2" };
- options.BackgroundGossipInterval = TimeSpan.FromSeconds(30);
- options.UseGlobalSingleInstanceByDefault = false;
- options.GlobalSingleInstanceRetryInterval = TimeSpan.FromSeconds(30);
- options.GlobalSingleInstanceNumberRetries = 3;
- options.MaxMultiClusterGateways = 10;
- options.GossipChannels.Add(
- "AzureTable",
- "DefaultEndpointsProtocol=https;AccountName=usa;AccountKey=...");
- options.GossipChannels.Add(
- "AzureTable",
- "DefaultEndpointsProtocol=https;AccountName=europe;AccountKey=...")
- });
- });
-```
-
-As usual, you can also read and write all configuration settings programmatically via the respective members of the class.
-
-The is an arbitrary ID for identifying this service. It must be the same for all clusters and all silos.
-
-The `MultiClusterNetwork` section is optional. If it's not present, all multi-cluster support is disabled for this silo.
-
-The **required parameters** and are explained in [Multi-cluster communication](gossip-channels.md).
-
-The optional parameters and are explained in [Multi-cluster communication](gossip-channels.md).
-
-The optional parameter is explained in [Multi-cluster configuration](multi-cluster-configuration.md).
-
-The optional parameters , , and are explained in [Global single-instance grains](global-single-instance.md).
-
-## Orleans client configuration
-
-No extra configuration is required for the Orleans client. The same client cannot connect to silos in different clusters (the silo refuses the connection in that situation).
diff --git a/docs/orleans/grains/event-sourcing/replicated-instances.md b/docs/orleans/grains/event-sourcing/replicated-instances.md
index ffcb1416e0230..6a1994dd3d175 100644
--- a/docs/orleans/grains/event-sourcing/replicated-instances.md
+++ b/docs/orleans/grains/event-sourcing/replicated-instances.md
@@ -7,7 +7,7 @@ ms.topic: conceptual
# Replicated grains
-Sometimes, multiple instances of the same grain can be active, such as when operating a multi-cluster and using the . `JournaledGrain` is designed to support replicated instances with minimal friction. It relies on *log-consistency providers* to run the necessary protocols ensuring all instances agree on the same sequence of events. In particular, it handles the following aspects:
+Multiple instances of the same grain can be active in certain scenarios. `JournaledGrain` is designed to support replicated instances with minimal friction. It relies on *log-consistency providers* to run the necessary protocols ensuring all instances agree on the same sequence of events. In particular, it handles the following aspects:
- **Consistent versions**: All versions of the grain state (except tentative versions) are based on the same global sequence of events. In particular, if two instances see the same version number, they see the same state.
diff --git a/docs/orleans/host/configuration-guide/list-of-options-classes.md b/docs/orleans/host/configuration-guide/list-of-options-classes.md
index 1f4003a4ee2f4..5a7417d2361ba 100644
--- a/docs/orleans/host/configuration-guide/list-of-options-classes.md
+++ b/docs/orleans/host/configuration-guide/list-of-options-classes.md
@@ -37,7 +37,6 @@ All options classes used to configure Orleans are found in the `Orleans.Configur
| | Options for grain garbage collection |
| | Governs grain implementation selection in heterogeneous deployments |
| | Settings for load shedding configuration. Must have a registered implementation of such as through or (Windows only) for `LoadShedding` to function. |
-| | Options for configuring multi-cluster support |
| | Performance tuning options (networking, number of threads) |
| | Configure silo behavior on process exit |
| | Configuring scheduler behavior |
diff --git a/docs/orleans/index.yml b/docs/orleans/index.yml
index 4a10724fe0b0c..4127a538215f8 100644
--- a/docs/orleans/index.yml
+++ b/docs/orleans/index.yml
@@ -95,9 +95,6 @@ conceptualContent:
- itemType: concept
text: Azure Container Apps
url: deployment/deploy-to-azure-container-apps.md
- - itemType: concept
- text: Multi-cluster deployment
- url: deployment/multi-cluster-support/overview.md
- title: Host Orleans apps
links:
- itemType: get-started
diff --git a/docs/orleans/toc.yml b/docs/orleans/toc.yml
index dfe8f075f6811..72ec1a29e0fc7 100644
--- a/docs/orleans/toc.yml
+++ b/docs/orleans/toc.yml
@@ -197,18 +197,6 @@ items:
href: deployment/docker-deployment.md
- name: Troubleshoot deployments
href: deployment/troubleshooting-deployments.md
- - name: Multi-cluster support
- items:
- - name: Overview
- href: deployment/multi-cluster-support/overview.md
- - name: Multi-cluster configuration
- href: deployment/multi-cluster-support/multi-cluster-configuration.md
- - name: Gossip channels
- href: deployment/multi-cluster-support/gossip-channels.md
- - name: Silo configuration
- href: deployment/multi-cluster-support/silo-configuration.md
- - name: Global-single-instance grains
- href: deployment/multi-cluster-support/global-single-instance.md
- name: Code samples
items:
- name: Overview
From 7d1b5186640629e01537e4deac91adfde047003c Mon Sep 17 00:00:00 2001
From: "Meaghan Osagie (Lewis)"
Date: Fri, 14 Nov 2025 11:02:34 -0800
Subject: [PATCH 07/19] Update .NET CLI command docs to reflect support for @
symbol (#49872)
* Update .NET CLI command docs to reflect support for @ symbol
* Update documentation to replace "at symbol" with "character" for clarity
* Apply suggestions from code review
Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Apply suggestions from code review
---------
Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
docs/core/tools/dotnet-new-install.md | 12 ++++++------
docs/core/tools/dotnet-tool-install.md | 12 +++++++++++-
docs/core/tools/dotnet-tool-update.md | 16 ++++++++++++----
docs/core/tools/dotnet-workload-install.md | 10 ++++++++--
docs/core/tools/dotnet-workload-search.md | 12 ++++++++++--
includes/cli-workload-version.md | 7 +++++++
6 files changed, 54 insertions(+), 15 deletions(-)
create mode 100644 includes/cli-workload-version.md
diff --git a/docs/core/tools/dotnet-new-install.md b/docs/core/tools/dotnet-new-install.md
index 604c0d7896a37..b93b76838ae61 100644
--- a/docs/core/tools/dotnet-new-install.md
+++ b/docs/core/tools/dotnet-new-install.md
@@ -1,11 +1,11 @@
---
title: dotnet new install
description: The dotnet new install command installs a template package.
-ms.date: 04/15/2022
+ms.date: 11/12/2025
---
# dotnet new install
-**This article applies to:** ✔️ .NET Core 3.1 SDK and later versions
+**This article applies to:** ✔️ .NET 6 SDK and later versions
## Name
@@ -20,7 +20,7 @@ dotnet new install [--interactive] [--add-source|--nuget-source
## Description
-The `dotnet new install` command installs a template package from the `PATH` or `NUGET_ID` provided. If you want to install a specific version or prerelease version of a template package, specify the version in the format `::`. By default, `dotnet new` passes \* for the version, which represents the latest stable package version. For more information, see the [Examples](#examples) section.
+The `dotnet new install` command installs a template package from the `PATH` or `NUGET_ID` provided. If you want to install a specific version or prerelease version of a template package, specify the version in the format `@`. (The colon separator `::` was deprecated in favor of the `@` character in .NET 9.0.200 SDK.) By default, `dotnet new` passes \* for the version, which represents the latest stable package version. For more information, see the [Examples](#examples) section.
If a version of the template package was already installed when you run this command, the template package will be updated to the specified version. If no version is specified, the package is updated to the latest stable version.
Starting with .NET SDK 6.0.100, if the argument specifies the version, and that version of the NuGet package is already installed, it won't be reinstalled.
@@ -50,7 +50,7 @@ Starting with .NET SDK 6.0.100, installed template packages are available in lat
- **``**
The folder on the file system or the NuGet package identifier to install the template package from. `dotnet new` attempts to install the NuGet package from the NuGet sources available for the current working directory and the sources specified via the `--add-source` option.
- If you want to install a specific version or prerelease version of a template package from NuGet source, specify the version in the format `::`.
+ If you want to install a specific version or prerelease version of a template package from NuGet source, specify the version in the format `@`. (The colon separator `::` was deprecated in favor of the `@` character in .NET 9.0.200 SDK.)
## Options
@@ -91,13 +91,13 @@ Starting with .NET SDK 6.0.100, installed template packages are available in lat
- Install version 2.0 of the SPA templates for ASP.NET Core:
```dotnetcli
- dotnet new install Microsoft.DotNet.Web.Spa.ProjectTemplates::2.0.0
+ dotnet new install Microsoft.DotNet.Web.Spa.ProjectTemplates@2.0.0
```
- Install version 2.0 of the SPA templates for ASP.NET Core from a custom NuGet source using interactive mode:
```dotnetcli
- dotnet new install Microsoft.DotNet.Web.Spa.ProjectTemplates::2.0.0 --add-source "https://api.my-custom-nuget.com/v3/index.json" --interactive
+ dotnet new install Microsoft.DotNet.Web.Spa.ProjectTemplates@2.0.0 --add-source "https://api.my-custom-nuget.com/v3/index.json" --interactive
```
## See also
diff --git a/docs/core/tools/dotnet-tool-install.md b/docs/core/tools/dotnet-tool-install.md
index b62f7e5d15658..40e284c518ef4 100644
--- a/docs/core/tools/dotnet-tool-install.md
+++ b/docs/core/tools/dotnet-tool-install.md
@@ -1,7 +1,7 @@
---
title: dotnet tool install command
description: The dotnet tool install command installs the specified .NET tool on your machine.
-ms.date: 10/28/2025
+ms.date: 11/12/2025
---
# dotnet tool install
@@ -94,6 +94,8 @@ For more information, see [Install a local tool](global-tools.md#install-a-local
Name/ID of the NuGet package that contains the .NET tool to install.
+ Starting in .NET 10.0.100 SDK, use the name/ID, and version separated by `@` to install a .NET tool.
+
## Options
[!INCLUDE [allow-downgrade](../../../includes/cli-allow-downgrade.md)]
@@ -201,10 +203,18 @@ For more information, see [Install a local tool](global-tools.md#install-a-local
Installs version 2.0.0 of [dotnetsay](https://www.nuget.org/packages/dotnetsay/) as a global tool.
+- **`dotnet tool install -g dotnetsay@2.1.7`**
+
+ Installs version 2.1.7 of [dotnetsay](https://www.nuget.org/packages/dotnetsay/) as a global tool.
+
- **`dotnet tool install dotnetsay`**
Installs [dotnetsay](https://www.nuget.org/packages/dotnetsay/) as a local tool for the current directory.
+- **`dotnet tool install dotnetsay@2.1.7`**
+
+ Installs version 2.1.7 of [dotnetsay](https://www.nuget.org/packages/dotnetsay/) as a local tool for the current directory.
+
- **`dotnet tool install -g dotnetsay --verbosity minimal`**
Installs [dotnetsay](https://www.nuget.org/packages/dotnetsay/) as a global tool with the verbosity of minimal. The default verbosity for global tool is quiet.
diff --git a/docs/core/tools/dotnet-tool-update.md b/docs/core/tools/dotnet-tool-update.md
index 0ac6c1413cee2..210ea716faf01 100644
--- a/docs/core/tools/dotnet-tool-update.md
+++ b/docs/core/tools/dotnet-tool-update.md
@@ -1,7 +1,7 @@
---
title: dotnet tool update command
description: The dotnet tool update command updates the specified .NET tool on your machine.
-ms.date: 10/28/2025
+ms.date: 11/12/2025
---
# dotnet tool update
@@ -54,7 +54,11 @@ The `dotnet tool update` command provides a way for you to update .NET tools on
- **`PACKAGE_ID`**
- Name/ID of the NuGet package that contains the .NET global tool to update. You can find the package name using the [dotnet tool list](dotnet-tool-list.md) command.
+ Name/ID of the NuGet package that contains the .NET global tool to update.
+
+ Starting in .NET 10.0.100 SDK, use the name/ID, and version separated by `@` to update a .NET tool.
+
+ You can find the package name using the [dotnet tool list](dotnet-tool-list.md) command.
## Options
@@ -138,9 +142,13 @@ The `dotnet tool update` command provides a way for you to update .NET tools on
Updates the [dotnetsay](https://www.nuget.org/packages/dotnetsay/) global tool to the latest patch version, with a major version of `2`, and a minor version of `0`.
-- **`dotnet tool update -g dotnetsay --version (2.0.*,2.1.4)`**
+- **`dotnet tool update -g dotnetsay@2.1.7*`**
+
+ Updates the [dotnetsay](https://www.nuget.org/packages/dotnetsay/) global tool to the latest patch version, 2.1.7.
+
+- **`dotnet tool update -g dotnetsay --version (2.0.0,2.1.7)`**
- Updates the [dotnetsay](https://www.nuget.org/packages/dotnetsay/) global tool to the lowest version within the specified range `(> 2.0.0 && < 2.1.4)`, version `2.1.0` would be installed. For more information on semantic versioning ranges, see [NuGet packaging version ranges](/nuget/concepts/package-versioning#version-ranges).
+ Updates the [dotnetsay](https://www.nuget.org/packages/dotnetsay/) global tool to the lowest version within the specified range `(> 2.0.0 && < 2.1.7)`, version `2.1.0` would be installed. For more information on semantic versioning ranges, see [NuGet packaging version ranges](/nuget/concepts/package-versioning#version-ranges).
## See also
diff --git a/docs/core/tools/dotnet-workload-install.md b/docs/core/tools/dotnet-workload-install.md
index 3ffd14d09beaa..9d7c94f7995eb 100644
--- a/docs/core/tools/dotnet-workload-install.md
+++ b/docs/core/tools/dotnet-workload-install.md
@@ -1,7 +1,7 @@
---
title: dotnet workload install command
description: The 'dotnet workload install' command installs optional workloads.
-ms.date: 09/10/2021
+ms.date: 11/12/2025
no-loc: [dotnet workload install]
---
# dotnet workload install
@@ -96,7 +96,7 @@ The `dotnet workload update` command also downloads advertising manifests. The d
[!INCLUDE [verbosity](../../../includes/cli-verbosity-packages.md)]
-[!INCLUDE [version](../../../includes/cli-version.md)]
+[!INCLUDE [workload-version](../../../includes/cli-workload-version.md)]
## Examples
@@ -111,3 +111,9 @@ The `dotnet workload update` command also downloads advertising manifests. The d
```dotnetcli
dotnet workload install maui-android maui-ios
```
+
+- Install the workload version specified by the `@` character:
+
+ ```dotnetcli
+ dotnet workload install maui@10.0.100
+ ```
diff --git a/docs/core/tools/dotnet-workload-search.md b/docs/core/tools/dotnet-workload-search.md
index 50628ded0cc51..5e89a5617524a 100644
--- a/docs/core/tools/dotnet-workload-search.md
+++ b/docs/core/tools/dotnet-workload-search.md
@@ -1,7 +1,7 @@
---
title: dotnet workload search command
description: The 'dotnet workload search' command searches for optional workloads.
-ms.date: 08/31/2021
+ms.date: 11/12/2025
---
# dotnet workload search
@@ -14,7 +14,7 @@ ms.date: 08/31/2021
## Synopsis
```dotnetcli
-dotnet workload search [] [-v|--verbosity ]
+dotnet workload search [] [-v|--verbosity ] [version ]
dotnet workload search -?|-h|--help
```
@@ -37,6 +37,8 @@ For more information about the `dotnet workload` commands, see the [dotnet workl
[!INCLUDE [verbosity](../../../includes/cli-verbosity-minimal.md)]
+[!INCLUDE [workload-version](../../../includes/cli-workload-version.md)]
+
## Examples
- List all available workloads:
@@ -50,3 +52,9 @@ For more information about the `dotnet workload` commands, see the [dotnet workl
```dotnetcli
dotnet workload search maui
```
+
+- Search for a workload that matches the provided version:
+
+ ```dotnetcli
+ dotnet workload search version maui@10.0.100
+ ```
diff --git a/includes/cli-workload-version.md b/includes/cli-workload-version.md
new file mode 100644
index 0000000000000..50d80935c14b4
--- /dev/null
+++ b/includes/cli-workload-version.md
@@ -0,0 +1,7 @@
+---
+ms.date: 11/12/2025
+ms.topic: include
+---
+- **`version `**
+
+ A workload version to display, or one or more workloads and their versions joined by the `@` character. Support for the `@` character is available since 9.0.200 SDK.
From 19d9a8aa8a9f94521d8fe27af25b989a02c03443 Mon Sep 17 00:00:00 2001
From: Copilot <198982749+Copilot@users.noreply.github.com>
Date: Fri, 14 Nov 2025 11:38:27 -0800
Subject: [PATCH 08/19] Document EXTOBS obsolete diagnostics for extensions
(#49870)
---
.../syslib-diagnostics/extobs0001.md | 106 ++++++++++++++++++
.../obsoletions-overview.md | 31 +++--
docs/navigate/tools-diagnostics/toc.yml | 6 +-
3 files changed, 132 insertions(+), 11 deletions(-)
create mode 100644 docs/fundamentals/syslib-diagnostics/extobs0001.md
diff --git a/docs/fundamentals/syslib-diagnostics/extobs0001.md b/docs/fundamentals/syslib-diagnostics/extobs0001.md
new file mode 100644
index 0000000000000..3d90b34ddf8f1
--- /dev/null
+++ b/docs/fundamentals/syslib-diagnostics/extobs0001.md
@@ -0,0 +1,106 @@
+---
+title: EXTOBS0001 warning
+description: Learn about the obsoletions that generate compile-time warning EXTOBS0001.
+ms.date: 11/12/2025
+f1_keywords:
+ - extobs0001
+ai-usage: ai-assisted
+---
+# EXTOBS0001: IResourceMonitor is obsolete
+
+The interface and related APIs are obsolete starting in .NET 9. These APIs will be removed in a future version. The resource monitoring functionality has been replaced with a more efficient metrics-based approach using observable instruments.
+
+The following APIs are marked obsolete. Use of these APIs generates warning `EXTOBS0001` at compile time.
+
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+-
+
+## Workarounds
+
+Instead of using `IResourceMonitor`, switch to using resource monitoring metrics with observable instruments. The metrics-based approach provides the same resource utilization information (CPU, memory) but integrates better with modern observability systems like OpenTelemetry.
+
+### Migration example
+
+Old approach using `IResourceMonitor`:
+
+```csharp
+services.AddResourceMonitoring();
+
+// Inject and use IResourceMonitor
+public class MyService
+{
+ private readonly IResourceMonitor _resourceMonitor;
+
+ public MyService(IResourceMonitor resourceMonitor)
+ {
+ _resourceMonitor = resourceMonitor;
+ }
+
+ public void CheckResources()
+ {
+ var utilization = _resourceMonitor.GetUtilization(TimeSpan.FromSeconds(1));
+ Console.WriteLine($"CPU: {utilization.CpuUsedPercentage}%");
+ Console.WriteLine($"Memory: {utilization.MemoryUsedPercentage}%");
+ }
+}
+```
+
+New approach using metrics:
+
+```csharp
+services.AddResourceMonitoring();
+
+// Configure metrics collection.
+services.AddOpenTelemetry()
+ .WithMetrics(builder =>
+ {
+ builder.AddMeter("Microsoft.Extensions.Diagnostics.ResourceMonitoring");
+ builder.AddConsoleExporter();
+ });
+```
+
+The resource monitoring metrics are automatically published and can be consumed by any OpenTelemetry-compatible metrics pipeline. For more information, see [`Microsoft.Extensions.Diagnostics.ResourceMonitoring` metrics](../../core/diagnostics/built-in-metrics-diagnostics.md#microsoftextensionsdiagnosticsresourcemonitoring).
+
+## Suppress a warning
+
+If you must use the obsolete APIs, you can suppress the warning in code or in your project file.
+
+To suppress only a single violation, add preprocessor directives to your source file to disable and then re-enable the warning.
+
+```csharp
+// Disable the warning.
+#pragma warning disable EXTOBS0001
+
+// Code that uses obsolete API.
+// ...
+
+// Re-enable the warning.
+#pragma warning restore EXTOBS0001
+```
+
+To suppress all the `EXTOBS0001` warnings in your project, add a `` property to your project file.
+
+```xml
+
+
+ ...
+ $(NoWarn);EXTOBS0001
+
+
+```
+
+For more information, see [Suppress warnings](obsoletions-overview.md#suppress-warnings).
+
+## See also
+
+- [Diagnostic resource monitoring](../../core/diagnostics/diagnostic-resource-monitoring.md)
+- [`Microsoft.Extensions.Diagnostics.ResourceMonitoring` metrics](../../core/diagnostics/built-in-metrics-diagnostics.md#microsoftextensionsdiagnosticsresourcemonitoring)
diff --git a/docs/fundamentals/syslib-diagnostics/obsoletions-overview.md b/docs/fundamentals/syslib-diagnostics/obsoletions-overview.md
index f6a8f835fbe53..aa8be162264b2 100644
--- a/docs/fundamentals/syslib-diagnostics/obsoletions-overview.md
+++ b/docs/fundamentals/syslib-diagnostics/obsoletions-overview.md
@@ -1,7 +1,7 @@
---
title: Obsolete features in .NET 5+
description: Learn about APIs that are marked as obsolete in .NET 5 and later versions that produce SYSLIB compiler warnings.
-ms.date: 01/14/2025
+ms.date: 11/12/2025
ai-usage: ai-assisted
---
@@ -9,15 +9,19 @@ ai-usage: ai-assisted
Starting in .NET 5, some APIs that are newly marked as obsolete make use of two new properties on .
-- The property tells the compiler to generate build warnings using a custom diagnostic ID. The custom ID allows for obsoletion warning to be suppressed specifically and separately from one another. In the case of the .NET 5+ obsoletions, the format for the custom diagnostic ID is `SYSLIB0XXX`.
-
+- The property tells the compiler to generate build warnings using a custom diagnostic ID. The custom ID allows for obsoletion warning to be suppressed specifically and separately from one another. In the case of the `System*` namespace obsoletions, the format for the custom diagnostic ID is `SYSLIB0XXX`. In the case of the `Microsoft.Extensions` obsoletions, the format for the custom diagnostic ID is `EXTOBS0XXX`.
- The property tells the compiler to include a URL link to learn more about the obsoletion.
-If you encounter build warnings or errors due to usage of an obsolete API, follow the specific guidance provided for the diagnostic ID listed in the [Reference](#reference) section. Warnings or errors for these obsoletions *can't* be suppressed using the [standard diagnostic ID (CS0618)](../../csharp/language-reference/compiler-messages/cs0618.md) for obsolete types or members; use the custom `SYSLIB0XXX` diagnostic ID values instead. For more information, see [Suppress warnings](#suppress-warnings).
+If you encounter build warnings or errors due to usage of an obsolete API, follow the specific guidance provided for the diagnostic ID listed in the reference tables that follow. Warnings or errors for these obsoletions *can't* be suppressed using the [standard diagnostic ID (CS0618)](../../csharp/language-reference/compiler-messages/cs0618.md) for obsolete types or members; use the custom `SYSLIB0XXX` or `EXTOBS0XXX` diagnostic ID values instead. For more information, see [Suppress warnings](#suppress-warnings).
+
+The following tables provide an index to obsolete APIs with custom diagnostic IDs in .NET 5 and later versions:
-## Reference
+- [SYSLIB obsoletions](#syslib-obsoletions)
+- [EXTOBS obsoletions](#extobs-obsoletions)
-The following table provides an index to the `SYSLIB0XXX` obsoletions in .NET 5+.
+## SYSLIB obsoletions
+
+The following table lists the `SYSLIB0XXX` obsoletions in .NET 5+.
| Diagnostic ID | Warning or error | Description |
|---------------|------------------|-------------|
@@ -84,9 +88,17 @@ The following table provides an index to the `SYSLIB0XXX` obsoletions in .NET 5+
| [SYSLIB0061](syslib0061.md) | Warning | The `Queryable` and taking an `IComparer` are obsolete. Use the new ones that take an `IComparer`. |
| [SYSLIB0062](syslib0062.md) | Warning | is obsolete. |
+## EXTOBS obsoletions
+
+The following table lists the `EXTOBS0XXX` obsoletions from the `Microsoft.Extensions` libraries.
+
+| Diagnostic ID | Warning or error | Description |
+|---------------|------------------|-------------|
+| [EXTOBS0001](extobs0001.md) | Warning | is obsolete and will be removed in a future version. Consider using [Resource Monitoring observable instruments](../../core/diagnostics/built-in-metrics-diagnostics.md#microsoftextensionsdiagnosticsresourcemonitoring). |
+
## Suppress warnings
-It's recommended that you use an available workaround whenever possible. However, if you cannot change your code, you can suppress warnings through a `#pragma` directive or a `` project setting. If you must use the obsolete APIs and the `SYSLIB0XXX` diagnostic does not surface as an error, you can suppress the warning in code or in your project file.
+It's recommended that you use an available workaround whenever possible. However, if you can't change your code, you can suppress warnings through a `#pragma` directive or a `` project setting. If you must use the obsolete APIs, and the `SYSLIB0XXX` or `EXTOBS0XXX` diagnostic doesn't surface as an error, you can suppress the warning in code or in your project file.
To suppress the warnings in code:
@@ -123,7 +135,6 @@ To suppress the warnings in a project file:
## See also
-- [API obsoletions with non-default diagnostic IDs (.NET 5)](../../core/compatibility/core-libraries/5.0/obsolete-apis-with-custom-diagnostics.md)
-- [API obsoletions with non-default diagnostic IDs (.NET 6)](../../core/compatibility/core-libraries/6.0/obsolete-apis-with-custom-diagnostics.md)
-- [API obsoletions with non-default diagnostic IDs (.NET 7)](../../core/compatibility/core-libraries/7.0/obsolete-apis-with-custom-diagnostics.md)
- [API obsoletions with non-default diagnostic IDs (.NET 8)](../../core/compatibility/core-libraries/8.0/obsolete-apis-with-custom-diagnostics.md)
+- [API obsoletions with non-default diagnostic IDs (.NET 9)](../../core/compatibility/core-libraries/9.0/obsolete-apis-with-custom-diagnostics.md)
+- [API obsoletions with non-default diagnostic IDs (.NET 10)](../../core/compatibility/core-libraries/10.0/obsolete-apis.md)
diff --git a/docs/navigate/tools-diagnostics/toc.yml b/docs/navigate/tools-diagnostics/toc.yml
index ef7767c738afb..f9a73e90e8b12 100644
--- a/docs/navigate/tools-diagnostics/toc.yml
+++ b/docs/navigate/tools-diagnostics/toc.yml
@@ -3936,7 +3936,7 @@ items:
- name: Obsoletions
items:
- name: Overview
- displayName: syslib, obsolete, obsoletion
+ displayName: syslib, extobs, obsolete, obsoletion
href: ../../fundamentals/syslib-diagnostics/obsoletions-overview.md
- name: SYSLIB0001
href: ../../fundamentals/syslib-diagnostics/syslib0001.md
@@ -4170,6 +4170,10 @@ items:
- name: SYSLIB1230
href: ../../fundamentals/syslib-diagnostics/syslib1230.md
displayProperty: syslib1230, syslib1231, syslib1232, syslib1233, syslib1234, syslib1235, syslib1236, syslib1237, syslib1238, syslib1239
+ - name: EXTOBS diagnostics
+ items:
+ - name: EXTOBS0001
+ href: ../../fundamentals/syslib-diagnostics/extobs0001.md
- name: API compatibility
items:
- name: Overview
From af02b5df2118fc3a8fe8878c5a421b217d19d45f Mon Sep 17 00:00:00 2001
From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Date: Fri, 14 Nov 2025 11:52:29 -0800
Subject: [PATCH 09/19] Update package index with latest published versions
(#49893)
---
docs/azure/includes/dotnet-all.md | 53 +++++++++++++++----------------
docs/azure/includes/dotnet-new.md | 10 +++---
2 files changed, 31 insertions(+), 32 deletions(-)
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index 7870f26939080..ab3b055f3459c 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -5,7 +5,7 @@
| 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.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) |
+| App Configuration Provider | NuGet [8.4.0](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.AzureAppConfiguration/8.4.0) NuGet [8.5.0-preview](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.AzureAppConfiguration/8.5.0-preview) | [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/) |
| Azure Object Anchors Conversion | NuGet [0.3.0-beta.6](https://www.nuget.org/packages/Azure.MixedReality.ObjectAnchors.Conversion/0.3.0-beta.6) | [docs](/dotnet/api/overview/azure/MixedReality.ObjectAnchors.Conversion-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [0.3.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.MixedReality.ObjectAnchors.Conversion_0.3.0-beta.6/sdk/objectanchors/Azure.MixedReality.ObjectAnchors.Conversion/) |
@@ -83,7 +83,6 @@
| Personalizer | NuGet [2.0.0-beta.2](https://www.nuget.org/packages/Azure.AI.Personalizer/2.0.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.Personalizer-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [2.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Personalizer_2.0.0-beta.2/sdk/personalizer/Azure.AI.Personalizer/) |
| 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.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/) |
@@ -141,7 +140,7 @@
| WebJobs Extensions - Web PubSub | NuGet [1.9.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.9.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.9.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) |
| Functions extension for Blob Storage | NuGet [5.3.7](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/5.3.7) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs-readme) | GitHub [5.3.7](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs_5.3.7/sdk/storage/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/) |
| Functions extension for Storage Queues | NuGet [5.3.7](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/5.3.7) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Queues-readme) | GitHub [5.3.7](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Storage.Queues_5.3.7/sdk/storage/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/) |
-| Functions extension for WebPubSub for SocketIO | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO_1.0.0-beta.4/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO/) |
+| Functions extension for WebPubSub for SocketIO | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO/1.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO_1.0.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO/) |
| Provisioning - App Configuration | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Provisioning.AppConfiguration/1.1.0) | [docs](/dotnet/api/overview/azure/Provisioning.AppConfiguration-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.AppConfiguration_1.1.0/sdk/provisioning/Azure.Provisioning.AppConfiguration/) |
| Provisioning - App Containers | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Provisioning.AppContainers/1.1.0) | [docs](/dotnet/api/overview/azure/Provisioning.AppContainers-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.AppContainers_1.1.0/sdk/provisioning/Azure.Provisioning.AppContainers/) |
| Provisioning - App Service | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Provisioning.AppService/1.2.0) NuGet [1.3.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.AppService/1.3.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.AppService-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.AppService_1.2.0/sdk/provisioning/Azure.Provisioning.AppService/) GitHub [1.3.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.AppService_1.3.0-beta.1/sdk/provisioning/Azure.Provisioning.AppService/) |
@@ -200,7 +199,7 @@
| Resource Management - Change Analysis | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.ChangeAnalysis/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ChangeAnalysis-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ChangeAnalysis_1.1.1/sdk/changeanalysis/Azure.ResourceManager.ChangeAnalysis/) |
| Resource Management - Chaos | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.Chaos/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Chaos-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Chaos_1.1.0/sdk/chaos/Azure.ResourceManager.Chaos/) |
| Resource Management - Cloudhealth | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.CloudHealth/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.CloudHealth-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.CloudHealth_1.0.0-beta.1/sdk/cloudhealth/Azure.ResourceManager.CloudHealth/) |
-| Resource Management - Cognitive Services | NuGet [1.5.1](https://www.nuget.org/packages/Azure.ResourceManager.CognitiveServices/1.5.1) | [docs](/dotnet/api/overview/azure/ResourceManager.CognitiveServices-readme) | GitHub [1.5.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.CognitiveServices_1.5.1/sdk/cognitiveservices/Azure.ResourceManager.CognitiveServices/) |
+| Resource Management - Cognitive Services | NuGet [1.5.2](https://www.nuget.org/packages/Azure.ResourceManager.CognitiveServices/1.5.2) | [docs](/dotnet/api/overview/azure/ResourceManager.CognitiveServices-readme) | GitHub [1.5.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.CognitiveServices_1.5.2/sdk/cognitiveservices/Azure.ResourceManager.CognitiveServices/) |
| Resource Management - Communication | NuGet [1.2.1](https://www.nuget.org/packages/Azure.ResourceManager.Communication/1.2.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Communication-readme) | GitHub [1.2.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Communication_1.2.1/sdk/communication/Azure.ResourceManager.Communication/) |
| Resource Management - Compute | NuGet [1.12.0](https://www.nuget.org/packages/Azure.ResourceManager.Compute/1.12.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Compute-readme) | GitHub [1.12.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Compute_1.12.0/sdk/compute/Azure.ResourceManager.Compute/) |
| Resource Management - Compute Fleet | NuGet [1.0.0](https://www.nuget.org/packages/Azure.ResourceManager.ComputeFleet/1.0.0) | [docs](/dotnet/api/overview/azure/ResourceManager.ComputeFleet-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ComputeFleet_1.0.0/sdk/computefleet/Azure.ResourceManager.ComputeFleet/) |
@@ -292,7 +291,7 @@
| Resource Management - Logic Apps | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.Logic/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Logic/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Logic-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Logic_1.1.0/sdk/logic/Azure.ResourceManager.Logic/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Logic_1.2.0-beta.1/sdk/logic/Azure.ResourceManager.Logic/) |
| Resource Management - Machine Learning | NuGet [1.2.3](https://www.nuget.org/packages/Azure.ResourceManager.MachineLearning/1.2.3) | [docs](/dotnet/api/overview/azure/ResourceManager.MachineLearning-readme) | GitHub [1.2.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.MachineLearning_1.2.3/sdk/machinelearningservices/Azure.ResourceManager.MachineLearning/) |
| Resource Management - Machine Learning Compute | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.ResourceManager.MachineLearningCompute/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/ResourceManager.MachineLearningCompute-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.MachineLearningCompute_1.0.0-beta.5/sdk/machinelearningcompute/Azure.ResourceManager.MachineLearningCompute/) |
-| Resource Management - Maintenance | NuGet [1.1.2](https://www.nuget.org/packages/Azure.ResourceManager.Maintenance/1.1.2) NuGet [1.2.0-beta.9](https://www.nuget.org/packages/Azure.ResourceManager.Maintenance/1.2.0-beta.9) | [docs](/dotnet/api/overview/azure/ResourceManager.Maintenance-readme) | GitHub [1.1.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Maintenance_1.1.2/sdk/maintenance/Azure.ResourceManager.Maintenance/) GitHub [1.2.0-beta.9](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Maintenance_1.2.0-beta.9/sdk/maintenance/Azure.ResourceManager.Maintenance/) |
+| Resource Management - Maintenance | NuGet [1.1.3](https://www.nuget.org/packages/Azure.ResourceManager.Maintenance/1.1.3) NuGet [1.2.0-beta.9](https://www.nuget.org/packages/Azure.ResourceManager.Maintenance/1.2.0-beta.9) | [docs](/dotnet/api/overview/azure/ResourceManager.Maintenance-readme) | GitHub [1.1.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Maintenance_1.1.3/sdk/maintenance/Azure.ResourceManager.Maintenance/) GitHub [1.2.0-beta.9](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Maintenance_1.2.0-beta.9/sdk/maintenance/Azure.ResourceManager.Maintenance/) |
| Resource Management - Managed Grafana | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.Grafana/1.1.1) NuGet [1.2.0-beta.3](https://www.nuget.org/packages/Azure.ResourceManager.Grafana/1.2.0-beta.3) | [docs](/dotnet/api/overview/azure/ResourceManager.Grafana-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Grafana_1.1.1/sdk/grafana/Azure.ResourceManager.Grafana/) GitHub [1.2.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Grafana_1.2.0-beta.3/sdk/grafana/Azure.ResourceManager.Grafana/) |
| Resource Management - Managed Network | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.ResourceManager.ManagedNetwork/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/ResourceManager.ManagedNetwork-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ManagedNetwork_1.0.0-beta.5/sdk/managednetwork/Azure.ResourceManager.ManagedNetwork/) |
| Resource Management - Managed Network Fabric | NuGet [1.1.2](https://www.nuget.org/packages/Azure.ResourceManager.ManagedNetworkFabric/1.1.2) | [docs](/dotnet/api/overview/azure/ResourceManager.ManagedNetworkFabric-readme) | GitHub [1.1.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ManagedNetworkFabric_1.1.2/sdk/managednetworkfabric/Azure.ResourceManager.ManagedNetworkFabric/) |
@@ -321,7 +320,7 @@
| Resource Management - Onlineexperimentation | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.OnlineExperimentation/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.OnlineExperimentation-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.OnlineExperimentation_1.0.0-beta.1/sdk/onlineexperimentation/Azure.ResourceManager.OnlineExperimentation/) |
| Resource Management - Oracle Database | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.OracleDatabase/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.OracleDatabase-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.OracleDatabase_1.2.0/sdk/oracle/Azure.ResourceManager.OracleDatabase/) |
| Resource Management - Orbital | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.Orbital/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Orbital-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Orbital_1.1.1/sdk/orbital/Azure.ResourceManager.Orbital/) |
-| Resource Management - Palo Alto Networks - Next Generation Firewall | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.PaloAltoNetworks.Ngfw/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.PaloAltoNetworks.Ngfw-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.PaloAltoNetworks.Ngfw_1.1.1/sdk/paloaltonetworks.ngfw/Azure.ResourceManager.PaloAltoNetworks.Ngfw/) |
+| Resource Management - Palo Alto Networks - Next Generation Firewall | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.PaloAltoNetworks.Ngfw/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.PaloAltoNetworks.Ngfw-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.PaloAltoNetworks.Ngfw_1.2.0/sdk/paloaltonetworks.ngfw/Azure.ResourceManager.PaloAltoNetworks.Ngfw/) |
| Resource Management - Peering | NuGet [1.2.2](https://www.nuget.org/packages/Azure.ResourceManager.Peering/1.2.2) | [docs](/dotnet/api/overview/azure/ResourceManager.Peering-readme) | GitHub [1.2.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Peering_1.2.2/sdk/peering/Azure.ResourceManager.Peering/) |
| Resource Management - Pineconevectordb | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.PineconeVectorDB/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.PineconeVectorDB-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.PineconeVectorDB_1.0.0-beta.1/sdk/pineconevectordb/Azure.ResourceManager.PineconeVectorDB/) |
| Resource Management - Planetarycomputer | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.PlanetaryComputer/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.PlanetaryComputer-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.PlanetaryComputer_1.0.0-beta.1/sdk/planetarycomputer/Azure.ResourceManager.PlanetaryComputer/) |
@@ -392,8 +391,8 @@
| Resource Management - Workloadorchestration | NuGet [1.0.0](https://www.nuget.org/packages/Azure.ResourceManager.WorkloadOrchestration/1.0.0) | [docs](/dotnet/api/overview/azure/ResourceManager.WorkloadOrchestration-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.WorkloadOrchestration_1.0.0/sdk/workloadorchestration/Azure.ResourceManager.WorkloadOrchestration/) |
| Resource Management - Workloads | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.Workloads/1.1.1) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Workloads/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Workloads-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Workloads_1.1.1/sdk/workloads/Azure.ResourceManager.Workloads/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Workloads_1.2.0-beta.1/sdk/workloads/Azure.ResourceManager.Workloads/) |
| Resource Management - Workloadssapvirtualinstance | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.WorkloadsSapVirtualInstance/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.WorkloadsSapVirtualInstance-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.WorkloadsSapVirtualInstance_1.0.0-beta.1/sdk/workloadssapvirtualinstance/Azure.ResourceManager.WorkloadsSapVirtualInstance/) |
-| App Configuration Extension | NuGet [8.4.0](https://www.nuget.org/packages/Microsoft.Azure.AppConfiguration.Functions.Worker/8.4.0) | | |
-| App Configuration Provider | NuGet [8.4.0](https://www.nuget.org/packages/Microsoft.Azure.AppConfiguration.AspNetCore/8.4.0) | | |
+| App Configuration Extension | NuGet [8.4.0](https://www.nuget.org/packages/Microsoft.Azure.AppConfiguration.Functions.Worker/8.4.0) NuGet [8.5.0-preview](https://www.nuget.org/packages/Microsoft.Azure.AppConfiguration.Functions.Worker/8.5.0-preview) | | |
+| App Configuration Provider | NuGet [8.4.0](https://www.nuget.org/packages/Microsoft.Azure.AppConfiguration.AspNetCore/8.4.0) NuGet [8.5.0-preview](https://www.nuget.org/packages/Microsoft.Azure.AppConfiguration.AspNetCore/8.5.0-preview) | | |
| Azure.Communication.Administration | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Communication.Administration/1.0.0-beta.3) | | |
| Communication Calling Windows Client | NuGet [1.13.0](https://www.nuget.org/packages/Azure.Communication.Calling.WindowsClient/1.13.0) | | |
| Content Safety Extension Embedded Image | NuGet [1.0.1-beta.4](https://www.nuget.org/packages/Azure.AI.ContentSafety.Extension.Embedded.Image/1.0.1-beta.4) | | |
@@ -407,8 +406,8 @@
| IoT Operations MQTT | NuGet [0.11.0](https://www.nuget.org/packages/Azure.Iot.Operations.Mqtt/0.11.0) | | |
| IoT Operations Protocol | NuGet [0.12.1](https://www.nuget.org/packages/Azure.Iot.Operations.Protocol/0.12.1) | | |
| IoT Operations Services | NuGet [0.15.1](https://www.nuget.org/packages/Azure.Iot.Operations.Services/0.15.1) | | |
-| Item Templates NetCore | NuGet [4.0.5331](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.ItemTemplates.NetCore/4.0.5331) | | |
-| Item Templates NetFx | NuGet [4.0.5331](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.ItemTemplates.NetFx/4.0.5331) | | |
+| Item Templates NetCore | NuGet [4.0.5337](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.ItemTemplates.NetCore/4.0.5337) | | |
+| Item Templates NetFx | NuGet [4.0.5337](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.ItemTemplates.NetFx/4.0.5337) | | |
| Microsoft.Azure.DataFactoryTestingFramework.Expressions | NuGet [0.2.7](https://www.nuget.org/packages/Microsoft.Azure.DataFactoryTestingFramework.Expressions/0.2.7) | | |
| Microsoft.Azure.Functions.Worker.OpenTelemetry | NuGet [1.1.0-preview6](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.OpenTelemetry/1.1.0-preview6) | | |
| OpenTelemetry Profiler | NuGet [1.0.0-beta6](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Profiler/1.0.0-beta6) | | |
@@ -420,13 +419,13 @@
| System Net Client Model | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/System.Net.ClientModel/1.0.0-beta.1) | | |
| Unknown Display Name | NuGet [0.13.0](https://www.nuget.org/packages/Azure.Iot.Operations.Connector/0.13.0) | | |
| Unknown Display Name | NuGet [0.1.0](https://www.nuget.org/packages/Azure.Iot.Operations.Templates/0.1.0) | | |
-| Unknown Display Name | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp/1.0.0) NuGet [2.0.0-beta.3](https://www.nuget.org/packages/Azure.Mcp/2.0.0-beta.3) | | |
-| Unknown Display Name | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.linux-arm64/1.0.0) NuGet [2.0.0-beta.3](https://www.nuget.org/packages/Azure.Mcp.linux-arm64/2.0.0-beta.3) | | |
-| Unknown Display Name | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.linux-x64/1.0.0) NuGet [2.0.0-beta.3](https://www.nuget.org/packages/Azure.Mcp.linux-x64/2.0.0-beta.3) | | |
-| Unknown Display Name | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.osx-arm64/1.0.0) NuGet [2.0.0-beta.3](https://www.nuget.org/packages/Azure.Mcp.osx-arm64/2.0.0-beta.3) | | |
-| Unknown Display Name | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.osx-x64/1.0.0) NuGet [2.0.0-beta.3](https://www.nuget.org/packages/Azure.Mcp.osx-x64/2.0.0-beta.3) | | |
-| Unknown Display Name | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.win-arm64/1.0.0) NuGet [2.0.0-beta.3](https://www.nuget.org/packages/Azure.Mcp.win-arm64/2.0.0-beta.3) | | |
-| Unknown Display Name | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.win-x64/1.0.0) NuGet [2.0.0-beta.3](https://www.nuget.org/packages/Azure.Mcp.win-x64/2.0.0-beta.3) | | |
+| Unknown Display Name | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp/1.0.0) NuGet [2.0.0-beta.4](https://www.nuget.org/packages/Azure.Mcp/2.0.0-beta.4) | | |
+| Unknown Display Name | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.linux-arm64/1.0.0) NuGet [2.0.0-beta.4](https://www.nuget.org/packages/Azure.Mcp.linux-arm64/2.0.0-beta.4) | | |
+| Unknown Display Name | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.linux-x64/1.0.0) NuGet [2.0.0-beta.4](https://www.nuget.org/packages/Azure.Mcp.linux-x64/2.0.0-beta.4) | | |
+| Unknown Display Name | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.osx-arm64/1.0.0) NuGet [2.0.0-beta.4](https://www.nuget.org/packages/Azure.Mcp.osx-arm64/2.0.0-beta.4) | | |
+| Unknown Display Name | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.osx-x64/1.0.0) NuGet [2.0.0-beta.4](https://www.nuget.org/packages/Azure.Mcp.osx-x64/2.0.0-beta.4) | | |
+| Unknown Display Name | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.win-arm64/1.0.0) NuGet [2.0.0-beta.4](https://www.nuget.org/packages/Azure.Mcp.win-arm64/2.0.0-beta.4) | | |
+| Unknown Display Name | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Mcp.win-x64/1.0.0) NuGet [2.0.0-beta.4](https://www.nuget.org/packages/Azure.Mcp.win-x64/2.0.0-beta.4) | | |
| Unknown Display Name | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Monitor.Query.Logs/1.0.0) | | |
| Unknown Display Name | NuGet [1.0.0](https://www.nuget.org/packages/Azure.Monitor.Query.Metrics/1.0.0) | | |
| Unknown Display Name | NuGet [0.1.4-preview.2](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Aot/0.1.4-preview.2) | | |
@@ -538,8 +537,8 @@
| Functions extension for Azure SQL and SQL Server | NuGet [3.1.527](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Sql/3.1.527) | | |
| Functions extension for Cosmos DB | NuGet [4.11.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.CosmosDB/4.11.0) NuGet [4.12.0-preview.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.CosmosDB/4.12.0-preview.1) | | GitHub [4.11.0](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/cosmos-v3.0.7/src/WebJobs.Extensions.CosmosDB) |
| Functions extension for DocumentDB | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DocumentDB/1.3.0) | | GitHub [1.3.0](https://github.com/Azure/azure-webjobs-sdk-extensions) |
-| Functions extension for Durable Task Framework | NuGet [3.7.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/3.7.0) | [docs](/dotnet/api/overview/azure/functions) | GitHub [3.7.0](https://github.com/Azure/azure-functions-durable-extension/tree/v2.2.2/src/WebJobs.Extensions.DurableTask) |
-| Functions extension for Durable Task Framework - isolated worker | NuGet [1.10.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.DurableTask/1.10.0) | | |
+| Functions extension for Durable Task Framework | NuGet [3.8.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.DurableTask/3.8.0) | [docs](/dotnet/api/overview/azure/functions) | GitHub [3.8.0](https://github.com/Azure/azure-functions-durable-extension/tree/v2.2.2/src/WebJobs.Extensions.DurableTask) |
+| Functions extension for Durable Task Framework - isolated worker | NuGet [1.11.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.DurableTask/1.11.0) | | |
| Functions extension for HTTP | NuGet [3.2.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Http/3.2.1) | | GitHub [3.2.1](https://github.com/Azure/azure-webjobs-sdk-extensions/tree/v3.0.2/src/WebJobs.Extensions.Http) |
| Functions extension for IoT Edge | NuGet [1.0.7](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EdgeHub/1.0.7) | | GitHub [1.0.7](https://github.com/Azure/iotedge/tree/1.0.7/edge-hub) |
| Functions extension for Kafka | NuGet [4.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Kafka/4.2.0) | | GitHub [4.2.0](https://github.com/Azure/azure-functions-kafka-extension/tree/3.0.0/src/Microsoft.Azure.WebJobs.Extensions.Kafka) |
@@ -558,10 +557,10 @@
| Functions Extensions - Redis | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Redis/1.0.0) | | |
| Functions Extensions - Redis | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Redis/1.0.0) | | |
| Functions Extensions - Worker Extentions | NuGet [1.0.1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Dapr/1.0.1) | | |
-| Functions item template pack for Microsoft Template Engine | NuGet [4.0.5331](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.ItemTemplates/4.0.5331) | | GitHub [4.0.5331](https://github.com/Azure/azure-functions-templates/tree/3.1.1582) |
+| Functions item template pack for Microsoft Template Engine | NuGet [4.0.5337](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.ItemTemplates/4.0.5337) | | GitHub [4.0.5337](https://github.com/Azure/azure-functions-templates/tree/3.1.1582) |
| Functions OpenAPI app settings deserialization library | NuGet [1.4.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.OpenApi.Configuration.AppSettings/1.4.0) NuGet [2.0.0-preview2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.OpenApi.Configuration.AppSettings/2.0.0-preview2) | | |
| Functions OpenAPI document and Swagger UI renderer library | NuGet [1.4.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.OpenApi/1.4.0) NuGet [2.0.0-preview2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.OpenApi/2.0.0-preview2) | | |
-| Functions project template pack for Microsoft Template Engine | NuGet [4.0.5331](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.ProjectTemplates/4.0.5331) | | GitHub [4.0.5331](https://github.com/Azure/azure-functions-templates/tree/3.1.1582) |
+| Functions project template pack for Microsoft Template Engine | NuGet [4.0.5337](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.ProjectTemplates/4.0.5337) | | GitHub [4.0.5337](https://github.com/Azure/azure-functions-templates/tree/3.1.1582) |
| Functions runtime assemblies for App Insights logging | NuGet [3.0.41](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Logging.ApplicationInsights/3.0.41) | | GitHub [3.0.41](https://github.com/Azure/azure-webjobs-sdk/tree/v3.0.18/src/Microsoft.Azure.WebJobs.Logging.ApplicationInsights) |
| Functions runtime assemblies for logging | NuGet [4.0.3](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Logging/4.0.3) | | |
| Functions runtime assemblies for Microsoft.Azure.WebJobs.Host | NuGet [3.0.42](https://www.nuget.org/packages/Microsoft.Azure.WebJobs/3.0.42) | | GitHub [3.0.42](https://github.com/Azure/azure-webjobs-sdk/tree/v3.0.18/src/Microsoft.Azure.WebJobs) |
@@ -569,9 +568,9 @@
| Microsoft.Azure.Cosmos.Templates | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Templates/1.0.0) | | |
| Microsoft.Azure.Functions.Analyzers | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Analyzers/1.0.0) | | |
| Microsoft.Azure.Functions.Authentication.WebAssembly | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Authentication.WebAssembly/1.0.0) NuGet [1.0.1-preview](https://www.nuget.org/packages/Microsoft.Azure.Functions.Authentication.WebAssembly/1.0.1-preview) | | |
-| Microsoft.Azure.Functions.Worker | NuGet [2.50.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker/2.50.0) | | |
+| Microsoft.Azure.Functions.Worker | NuGet [2.51.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker/2.51.0) | | |
| Microsoft.Azure.Functions.Worker.ApplicationInsights | NuGet [2.50.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.ApplicationInsights/2.50.0) | | |
-| Microsoft.Azure.Functions.Worker.Core | NuGet [2.50.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Core/2.50.0) | | |
+| Microsoft.Azure.Functions.Worker.Core | NuGet [2.51.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Core/2.51.0) | | |
| Microsoft.Azure.Functions.Worker.Extensions.Abstractions | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Abstractions/1.3.0) | | |
| Microsoft.Azure.Functions.Worker.Extensions.ApplicationInsights | NuGet [1.0.0-preview4](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.ApplicationInsights/1.0.0-preview4) | | |
| Microsoft.Azure.Functions.Worker.Extensions.CosmosDB | NuGet [4.14.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.CosmosDB/4.14.0) | | |
@@ -594,10 +593,10 @@
| Microsoft.Azure.Functions.Worker.Extensions.Tables | NuGet [1.5.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Tables/1.5.0) | | |
| Microsoft.Azure.Functions.Worker.Extensions.Timer | NuGet [4.3.1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Timer/4.3.1) | | |
| Microsoft.Azure.Functions.Worker.Extensions.Warmup | NuGet [4.0.2](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Warmup/4.0.2) | | |
-| Microsoft.Azure.Functions.Worker.Grpc | NuGet [2.50.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Grpc/2.50.0) | | |
-| Microsoft.Azure.Functions.Worker.ItemTemplates | NuGet [4.0.5331](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.ItemTemplates/4.0.5331) | | |
-| Microsoft.Azure.Functions.Worker.ProjectTemplates | NuGet [4.0.5331](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.ProjectTemplates/4.0.5331) | | |
-| Microsoft.Azure.Functions.Worker.Sdk | NuGet [2.0.6](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Sdk/2.0.6) | | |
+| Microsoft.Azure.Functions.Worker.Grpc | NuGet [2.51.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Grpc/2.51.0) | | |
+| Microsoft.Azure.Functions.Worker.ItemTemplates | NuGet [4.0.5337](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.ItemTemplates/4.0.5337) | | |
+| Microsoft.Azure.Functions.Worker.ProjectTemplates | NuGet [4.0.5337](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.ProjectTemplates/4.0.5337) | | |
+| Microsoft.Azure.Functions.Worker.Sdk | NuGet [2.0.7](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Sdk/2.0.7) | | |
| Microsoft.Azure.Functions.Worker.Sdk.Analyzers | NuGet [1.2.2](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Sdk.Analyzers/1.2.2) | | |
| Microsoft.Azure.Functions.Worker.Sdk.Generators | NuGet [1.3.6](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Sdk.Generators/1.3.6) | | |
| Microsoft.Azure.WebJobs.CosmosDb.ChangeProcessor | NuGet [1.0.4](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.CosmosDb.ChangeProcessor/1.0.4) | | |
diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md
index 6a48930e9a738..c1a0adf9dade0 100644
--- a/docs/azure/includes/dotnet-new.md
+++ b/docs/azure/includes/dotnet-new.md
@@ -5,7 +5,7 @@
| 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.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) |
+| App Configuration Provider | NuGet [8.4.0](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.AzureAppConfiguration/8.4.0) NuGet [8.5.0-preview](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.AzureAppConfiguration/8.5.0-preview) | [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/) |
| Azure Object Anchors Conversion | NuGet [0.3.0-beta.6](https://www.nuget.org/packages/Azure.MixedReality.ObjectAnchors.Conversion/0.3.0-beta.6) | [docs](/dotnet/api/overview/azure/MixedReality.ObjectAnchors.Conversion-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [0.3.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.MixedReality.ObjectAnchors.Conversion_0.3.0-beta.6/sdk/objectanchors/Azure.MixedReality.ObjectAnchors.Conversion/) |
@@ -150,7 +150,7 @@
| WebJobs Extensions - Web PubSub | NuGet [1.9.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSub/1.9.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSub-readme) | GitHub [1.9.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSub_1.9.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSub/) |
| Functions extension for Blob Storage | NuGet [5.3.7](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/5.3.7) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs-readme) | GitHub [5.3.7](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs_5.3.7/sdk/storage/Microsoft.Azure.WebJobs.Extensions.Storage.Blobs/) |
| Functions extension for Storage Queues | NuGet [5.3.7](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/5.3.7) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Storage.Queues-readme) | GitHub [5.3.7](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Storage.Queues_5.3.7/sdk/storage/Microsoft.Azure.WebJobs.Extensions.Storage.Queues/) |
-| Functions extension for WebPubSub for SocketIO | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO_1.0.0-beta.4/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO/) |
+| Functions extension for WebPubSub for SocketIO | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO/1.0.0) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO_1.0.0/sdk/webpubsub/Microsoft.Azure.WebJobs.Extensions.WebPubSubForSocketIO/) |
| Provisioning - App Configuration | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Provisioning.AppConfiguration/1.1.0) | [docs](/dotnet/api/overview/azure/Provisioning.AppConfiguration-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.AppConfiguration_1.1.0/sdk/provisioning/Azure.Provisioning.AppConfiguration/) |
| Provisioning - App Containers | NuGet [1.1.0](https://www.nuget.org/packages/Azure.Provisioning.AppContainers/1.1.0) | [docs](/dotnet/api/overview/azure/Provisioning.AppContainers-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.AppContainers_1.1.0/sdk/provisioning/Azure.Provisioning.AppContainers/) |
| Provisioning - App Service | NuGet [1.2.0](https://www.nuget.org/packages/Azure.Provisioning.AppService/1.2.0) NuGet [1.3.0-beta.1](https://www.nuget.org/packages/Azure.Provisioning.AppService/1.3.0-beta.1) | [docs](/dotnet/api/overview/azure/Provisioning.AppService-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.AppService_1.2.0/sdk/provisioning/Azure.Provisioning.AppService/) GitHub [1.3.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Provisioning.AppService_1.3.0-beta.1/sdk/provisioning/Azure.Provisioning.AppService/) |
@@ -211,7 +211,7 @@
| Resource Management - Change Analysis | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.ChangeAnalysis/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ChangeAnalysis-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ChangeAnalysis_1.1.1/sdk/changeanalysis/Azure.ResourceManager.ChangeAnalysis/) |
| Resource Management - Chaos | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.Chaos/1.1.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Chaos-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Chaos_1.1.0/sdk/chaos/Azure.ResourceManager.Chaos/) |
| Resource Management - Cloudhealth | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.CloudHealth/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.CloudHealth-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.CloudHealth_1.0.0-beta.1/sdk/cloudhealth/Azure.ResourceManager.CloudHealth/) |
-| Resource Management - Cognitive Services | NuGet [1.5.1](https://www.nuget.org/packages/Azure.ResourceManager.CognitiveServices/1.5.1) | [docs](/dotnet/api/overview/azure/ResourceManager.CognitiveServices-readme) | GitHub [1.5.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.CognitiveServices_1.5.1/sdk/cognitiveservices/Azure.ResourceManager.CognitiveServices/) |
+| Resource Management - Cognitive Services | NuGet [1.5.2](https://www.nuget.org/packages/Azure.ResourceManager.CognitiveServices/1.5.2) | [docs](/dotnet/api/overview/azure/ResourceManager.CognitiveServices-readme) | GitHub [1.5.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.CognitiveServices_1.5.2/sdk/cognitiveservices/Azure.ResourceManager.CognitiveServices/) |
| Resource Management - Communication | NuGet [1.2.1](https://www.nuget.org/packages/Azure.ResourceManager.Communication/1.2.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Communication-readme) | GitHub [1.2.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Communication_1.2.1/sdk/communication/Azure.ResourceManager.Communication/) |
| Resource Management - Compute | NuGet [1.12.0](https://www.nuget.org/packages/Azure.ResourceManager.Compute/1.12.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Compute-readme) | GitHub [1.12.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Compute_1.12.0/sdk/compute/Azure.ResourceManager.Compute/) |
| Resource Management - Compute Fleet | NuGet [1.0.0](https://www.nuget.org/packages/Azure.ResourceManager.ComputeFleet/1.0.0) | [docs](/dotnet/api/overview/azure/ResourceManager.ComputeFleet-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ComputeFleet_1.0.0/sdk/computefleet/Azure.ResourceManager.ComputeFleet/) |
@@ -305,7 +305,7 @@
| Resource Management - Logic Apps | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.Logic/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Logic/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Logic-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Logic_1.1.0/sdk/logic/Azure.ResourceManager.Logic/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Logic_1.2.0-beta.1/sdk/logic/Azure.ResourceManager.Logic/) |
| Resource Management - Machine Learning | NuGet [1.2.3](https://www.nuget.org/packages/Azure.ResourceManager.MachineLearning/1.2.3) | [docs](/dotnet/api/overview/azure/ResourceManager.MachineLearning-readme) | GitHub [1.2.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.MachineLearning_1.2.3/sdk/machinelearningservices/Azure.ResourceManager.MachineLearning/) |
| Resource Management - Machine Learning Compute | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.ResourceManager.MachineLearningCompute/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/ResourceManager.MachineLearningCompute-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.MachineLearningCompute_1.0.0-beta.5/sdk/machinelearningcompute/Azure.ResourceManager.MachineLearningCompute/) |
-| Resource Management - Maintenance | NuGet [1.1.2](https://www.nuget.org/packages/Azure.ResourceManager.Maintenance/1.1.2) NuGet [1.2.0-beta.9](https://www.nuget.org/packages/Azure.ResourceManager.Maintenance/1.2.0-beta.9) | [docs](/dotnet/api/overview/azure/ResourceManager.Maintenance-readme) | GitHub [1.1.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Maintenance_1.1.2/sdk/maintenance/Azure.ResourceManager.Maintenance/) GitHub [1.2.0-beta.9](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Maintenance_1.2.0-beta.9/sdk/maintenance/Azure.ResourceManager.Maintenance/) |
+| Resource Management - Maintenance | NuGet [1.1.3](https://www.nuget.org/packages/Azure.ResourceManager.Maintenance/1.1.3) NuGet [1.2.0-beta.9](https://www.nuget.org/packages/Azure.ResourceManager.Maintenance/1.2.0-beta.9) | [docs](/dotnet/api/overview/azure/ResourceManager.Maintenance-readme) | GitHub [1.1.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Maintenance_1.1.3/sdk/maintenance/Azure.ResourceManager.Maintenance/) GitHub [1.2.0-beta.9](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Maintenance_1.2.0-beta.9/sdk/maintenance/Azure.ResourceManager.Maintenance/) |
| Resource Management - Managed Grafana | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.Grafana/1.1.1) NuGet [1.2.0-beta.3](https://www.nuget.org/packages/Azure.ResourceManager.Grafana/1.2.0-beta.3) | [docs](/dotnet/api/overview/azure/ResourceManager.Grafana-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Grafana_1.1.1/sdk/grafana/Azure.ResourceManager.Grafana/) GitHub [1.2.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Grafana_1.2.0-beta.3/sdk/grafana/Azure.ResourceManager.Grafana/) |
| Resource Management - Managed Network | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.ResourceManager.ManagedNetwork/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/ResourceManager.ManagedNetwork-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ManagedNetwork_1.0.0-beta.5/sdk/managednetwork/Azure.ResourceManager.ManagedNetwork/) |
| Resource Management - Managed Network Fabric | NuGet [1.1.2](https://www.nuget.org/packages/Azure.ResourceManager.ManagedNetworkFabric/1.1.2) | [docs](/dotnet/api/overview/azure/ResourceManager.ManagedNetworkFabric-readme) | GitHub [1.1.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ManagedNetworkFabric_1.1.2/sdk/managednetworkfabric/Azure.ResourceManager.ManagedNetworkFabric/) |
@@ -336,7 +336,7 @@
| Resource Management - Onlineexperimentation | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.OnlineExperimentation/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.OnlineExperimentation-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.OnlineExperimentation_1.0.0-beta.1/sdk/onlineexperimentation/Azure.ResourceManager.OnlineExperimentation/) |
| Resource Management - Oracle Database | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.OracleDatabase/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.OracleDatabase-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.OracleDatabase_1.2.0/sdk/oracle/Azure.ResourceManager.OracleDatabase/) |
| Resource Management - Orbital | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.Orbital/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Orbital-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Orbital_1.1.1/sdk/orbital/Azure.ResourceManager.Orbital/) |
-| Resource Management - Palo Alto Networks - Next Generation Firewall | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.PaloAltoNetworks.Ngfw/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.PaloAltoNetworks.Ngfw-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.PaloAltoNetworks.Ngfw_1.1.1/sdk/paloaltonetworks.ngfw/Azure.ResourceManager.PaloAltoNetworks.Ngfw/) |
+| Resource Management - Palo Alto Networks - Next Generation Firewall | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.PaloAltoNetworks.Ngfw/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.PaloAltoNetworks.Ngfw-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.PaloAltoNetworks.Ngfw_1.2.0/sdk/paloaltonetworks.ngfw/Azure.ResourceManager.PaloAltoNetworks.Ngfw/) |
| Resource Management - Peering | NuGet [1.2.2](https://www.nuget.org/packages/Azure.ResourceManager.Peering/1.2.2) | [docs](/dotnet/api/overview/azure/ResourceManager.Peering-readme) | GitHub [1.2.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Peering_1.2.2/sdk/peering/Azure.ResourceManager.Peering/) |
| Resource Management - Pineconevectordb | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.PineconeVectorDB/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.PineconeVectorDB-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.PineconeVectorDB_1.0.0-beta.1/sdk/pineconevectordb/Azure.ResourceManager.PineconeVectorDB/) |
| Resource Management - Planetarycomputer | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.PlanetaryComputer/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.PlanetaryComputer-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.PlanetaryComputer_1.0.0-beta.1/sdk/planetarycomputer/Azure.ResourceManager.PlanetaryComputer/) |
From 1580892c8c112042fdf88a55ec6008db50d16d77 Mon Sep 17 00:00:00 2001
From: Copilot <198982749+Copilot@users.noreply.github.com>
Date: Fri, 14 Nov 2025 11:53:26 -0800
Subject: [PATCH 10/19] Document predefined compiler symbols in F# compiler
directives (#49386)
---
.../language-reference/compiler-directives.md | 55 ++++++++++++++++++-
1 file changed, 54 insertions(+), 1 deletion(-)
diff --git a/docs/fsharp/language-reference/compiler-directives.md b/docs/fsharp/language-reference/compiler-directives.md
index 585478b98e0bc..38169df1c1d64 100644
--- a/docs/fsharp/language-reference/compiler-directives.md
+++ b/docs/fsharp/language-reference/compiler-directives.md
@@ -1,9 +1,10 @@
---
title: Compiler Directives
description: Learn about F# language conditional compilation directives, line directives, and warn directives.
-ms.date: 12/10/2018
+ms.date: 10/21/2025
f1_keywords:
- "#endif_FS"
+ai-usage: ai-assisted
---
# Compiler Directives
@@ -53,6 +54,58 @@ There is no `#define` compiler directive in F#. You must use the compiler option
Conditional compilation directives can be nested. Indentation is not significant for compiler directives.
+## Predefined symbols
+
+The F# compiler and build system automatically define several symbols that can be used for conditional compilation.
+
+### Build configuration symbols
+
+The following symbols are defined based on your build configuration:
+
+- `DEBUG`: Defined when compiling in Debug mode. In the project system, the `DEBUG` symbol is automatically defined in the Debug configuration, but not in the Release configuration. This symbol is commonly used with assertions and diagnostic code. For more information, see [Assertions](assertions.md).
+- `TRACE`: Defined for builds that enable tracing. Like `DEBUG`, this symbol is typically defined in Debug configurations but can also be enabled in Release configurations.
+
+You can override these values using the [`-define` compiler option](compiler-options.md) or project settings.
+
+### Compilation mode symbols
+
+The following symbols distinguish between different compilation modes:
+
+- `COMPILED`: Defined when compiling code with the F# compiler. This symbol is useful when you need code to behave differently in compiled assemblies versus F# Interactive sessions.
+- `INTERACTIVE`: Defined when compiling or executing code in F# Interactive (`dotnet fsi`), including both interactive sessions and script execution. This allows you to write code that works differently when running interactively.
+
+For more information about using these symbols in scripts, see [Interactive Programming with F#](../tools/fsharp-interactive/index.md).
+
+Example:
+
+```fsharp
+#if INTERACTIVE
+// Code specific to F# Interactive
+#r "nuget: Newtonsoft.Json"
+#endif
+
+#if COMPILED
+// Code specific to compiled assemblies
+open System.Configuration
+#endif
+```
+
+### Target framework symbols
+
+The build system also defines preprocessor symbols for different target frameworks in SDK-style projects. These symbols are useful when creating libraries or applications that target multiple .NET versions.
+
+[!INCLUDE [Preprocessor symbols](~/includes/preprocessor-symbols.md)]
+
+For example, you can use these symbols to conditionally compile code based on the target framework:
+
+```fsharp
+#if NET6_0_OR_GREATER
+// Use .NET 6+ specific APIs
+#else
+// Use alternative implementation for older frameworks
+#endif
+```
+
## NULLABLE directive
Starting with F# 9, you can enable nullable reference types in the project:
From 30dfb475f2623910e7acb2c9548cb6d917897a55 Mon Sep 17 00:00:00 2001
From: Copilot <198982749+Copilot@users.noreply.github.com>
Date: Fri, 14 Nov 2025 11:55:16 -0800
Subject: [PATCH 11/19] Add breaking change documentation for DAMT.All
replacement in System.Reflection APIs (#48922)
---
docs/core/compatibility/10.0.md | 6 ++
.../10/ireflect-damt-annotations.md | 64 +++++++++++++++++++
docs/core/compatibility/toc.yml | 2 +
3 files changed, 72 insertions(+)
create mode 100644 docs/core/compatibility/reflection/10/ireflect-damt-annotations.md
diff --git a/docs/core/compatibility/10.0.md b/docs/core/compatibility/10.0.md
index 4a91f0a4924ed..787ec470e6c1a 100644
--- a/docs/core/compatibility/10.0.md
+++ b/docs/core/compatibility/10.0.md
@@ -110,6 +110,12 @@ If you're migrating an app to .NET 10, the breaking changes listed here might af
| [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 |
+## Reflection
+
+| Title | Type of change | Introduced version |
+|-------|-------------------|--------------------|
+| [More restricted annotations on InvokeMember/FindMembers/DeclaredMembers](reflection/10/ireflect-damt-annotations.md) | Behavioral/source incompatible | |
+
## SDK and MSBuild
| Title | Type of change |
diff --git a/docs/core/compatibility/reflection/10/ireflect-damt-annotations.md b/docs/core/compatibility/reflection/10/ireflect-damt-annotations.md
new file mode 100644
index 0000000000000..b55b4f6ceef02
--- /dev/null
+++ b/docs/core/compatibility/reflection/10/ireflect-damt-annotations.md
@@ -0,0 +1,64 @@
+---
+title: "Breaking change: More restricted annotations on InvokeMember/FindMembers/DeclaredMembers"
+description: "Learn about the breaking change in .NET 10 where System.Reflection APIs InvokeMember, FindMembers, and DeclaredMembers use more restricted annotations instead of DynamicallyAccessedMemberTypes.All."
+ms.date: 10/09/2025
+ai-usage: ai-generated
+---
+
+# More restricted annotations on InvokeMember/FindMembers/DeclaredMembers
+
+Starting in .NET 10, the APIs , , and use more restricted annotations instead of .
+
+This change affects scenarios where developers implement the interface or derive from . The previous use of was overly permissive and could lead to unintended behavior, such as capturing interface methods implemented by a class or generating warnings due to unsafe reflection calls.
+
+## Version introduced
+
+.NET 10
+
+## Previous behavior
+
+Previously, the [affected APIs](#affected-apis) used the annotation, which was overly permissive. This could result in capturing additional members, such as interface methods implemented by a class, and potentially cause runtime warnings or unsafe reflection calls.
+
+## New behavior
+
+The [affected APIs](#affected-apis) now use more restricted annotations, which provide better control over the members captured during reflection.
+
+## Type of breaking change
+
+This change is a [behavioral change](../../categories.md#behavioral-change) and can affect [source compatibility](../../categories.md#source-compatibility).
+
+## Reason for change
+
+The change was introduced to improve the accuracy of annotations in APIs and to address issues caused by the overly permissive annotation. This ensures better compatibility with trimming and reflection scenarios, reduces run-time warnings, and prevents unsafe reflection calls.
+
+## Recommended action
+
+If you implement or derive from , review your code and update annotations to align with the new behavior. Specifically:
+
+1. Replace annotations with more restricted annotations, such as , , or other appropriate types.
+
+ The following code snippet shows an example.
+
+ ```csharp
+ class MyType : IReflect
+ {
+ [DynamicallyAccessedMembers(
+ DynamicallyAccessedMemberTypes.PublicFields | DynamicallyAccessedMemberTypes.NonPublicFields |
+ DynamicallyAccessedMemberTypes.PublicMethods | DynamicallyAccessedMemberTypes.NonPublicMethods |
+ DynamicallyAccessedMemberTypes.PublicProperties | DynamicallyAccessedMemberTypes.NonPublicProperties |
+ DynamicallyAccessedMemberTypes.PublicConstructors | DynamicallyAccessedMemberTypes.NonPublicConstructors)]
+ public object InvokeMember(string name, BindingFlags invokeAttr, Binder? binder, object? target,
+ object?[]? args, ParameterModifier[]? modifiers, CultureInfo? culture, string[]? namedParameters)
+ { }
+ }
+ ```
+
+1. Test reflection scenarios to ensure that the updated annotations capture the intended members and don't introduce run-time errors or warnings.
+
+For more information on `DynamicallyAccessedMembers` annotations and their usage, see [Prepare .NET libraries for trimming](../../../deploying/trimming/prepare-libraries-for-trimming.md).
+
+## Affected APIs
+
+-
+-
+-
diff --git a/docs/core/compatibility/toc.yml b/docs/core/compatibility/toc.yml
index 78a5d4adf5f58..fe5e041baa491 100644
--- a/docs/core/compatibility/toc.yml
+++ b/docs/core/compatibility/toc.yml
@@ -122,6 +122,8 @@ items:
href: networking/10.0/uri-length-limits-removed.md
- name: Reflection
items:
+ - name: More restricted annotations on InvokeMember/FindMembers/DeclaredMembers
+ href: reflection/10/ireflect-damt-annotations.md
- name: Type.MakeGenericSignatureType argument validation
href: reflection/10/makegeneric-signaturetype-validation.md
- name: SDK and MSBuild
From 667b56fef60de5fcdf33a29551997c0fe80e19dd Mon Sep 17 00:00:00 2001
From: "Andy (Steve) De George" <67293991+adegeo@users.noreply.github.com>
Date: Fri, 14 Nov 2025 12:01:38 -0800
Subject: [PATCH 12/19] Update latest status of Linux (#49907)
* Update latest status of linux
* Found packages for Deb13
* Latest opensuse state
* typo
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Update with more state; fix snap-sdk changes from 9+
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
docs/core/install/linux-debian.md | 14 ++---
docs/core/install/linux-opensuse.md | 8 ++-
docs/core/install/linux-rhel.md | 4 +-
docs/core/install/linux-sles.md | 16 ++---
docs/core/install/linux-snap-runtime.md | 23 ++++----
docs/core/install/linux-snap-sdk.md | 78 ++++++++++++++++++-------
6 files changed, 88 insertions(+), 55 deletions(-)
diff --git a/docs/core/install/linux-debian.md b/docs/core/install/linux-debian.md
index fed35afd41b0c..d56a6578e1120 100644
--- a/docs/core/install/linux-debian.md
+++ b/docs/core/install/linux-debian.md
@@ -9,7 +9,7 @@ ms.custom: linux-related-content
# Install the .NET SDK or the .NET Runtime on Debian
-This article describes how to install .NET on Debian. When a Debian version falls out of support, .NET is no longer supported with that version. However, these instructions may help you to get .NET running on those versions, even though it isn't supported.
+This article describes how to install .NET on Debian. When a Debian version falls out of support, .NET is no longer supported with that version. However, these instructions might help you to get .NET running on those versions, even though it isn't supported.
[!INCLUDE [linux-intro-sdk-vs-runtime](includes/linux-intro-sdk-vs-runtime.md)]
@@ -42,8 +42,6 @@ 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)]
@@ -76,8 +74,6 @@ 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)]
@@ -98,18 +94,18 @@ rm packages-microsoft-prod.deb
## Use APT to update .NET
-When a new patch release is available for .NET, you can simply upgrade it through APT with the following commands:
+When a new patch release is available for .NET, you can upgrade it through APT with the following commands:
```bash
sudo apt-get update
sudo apt-get upgrade
```
-If you've upgraded your Linux distribution since installing .NET, you may need to reconfigure the Microsoft package repository. Run the installation instructions for your current distribution version to upgrade to the appropriate package repository for .NET updates.
+If you upgraded your Linux distribution since installing .NET, you might need to reconfigure the Microsoft package repository. Run the installation instructions for your current distribution version to upgrade to the appropriate package repository for .NET updates.
## Troubleshooting
-This section provides information on common errors you may get while using APT to install .NET.
+This section provides information on common errors you might get while using APT to install .NET.
### Unable to find package
@@ -123,7 +119,7 @@ If you're using Debian 12 or later, try the following commands:
[!INCLUDE [package-manager-failed-to-find-deb-new](includes/package-manager-failed-to-find-deb-new.md)]
-If you're using a Debian version prior to 12, try the following commands:
+If you're using a Debian version older than 12, try the following commands:
[!INCLUDE [package-manager-failed-to-find-deb-classic](includes/package-manager-failed-to-find-deb-classic.md)]
diff --git a/docs/core/install/linux-opensuse.md b/docs/core/install/linux-opensuse.md
index 95deeac92e265..55d8242556fe1 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/07/2025
+ms.date: 11/14/2025
ms.custom: linux-related-content
---
@@ -46,20 +46,22 @@ 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)
+openSUSE Leap 16 is newly supported with .NET. The packages for .NET 9 aren't published yet.
+
[!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)
+openSUSE Leap 16 is newly supported with .NET. The packages for .NET 8 aren't published yet.
+
[!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)]
diff --git a/docs/core/install/linux-rhel.md b/docs/core/install/linux-rhel.md
index 8d4c3e09e5308..4063a99f846a0 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: 11/07/2025
+ms.date: 11/14/2025
ms.custom: linux-related-content
---
@@ -44,8 +44,6 @@ The following table is a list of currently supported .NET releases on both RHEL
## 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)]
diff --git a/docs/core/install/linux-sles.md b/docs/core/install/linux-sles.md
index 482f6f1e2fa7a..6fe4e7a8a7ddc 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/07/2025
+ms.date: 11/14/2025
ms.custom: linux-related-content
---
@@ -43,20 +43,22 @@ sudo rpm -Uvh https://packages.microsoft.com/config/sles/16/packages-microsoft-p
# [.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)
+SUSE Enterprise Linux 16 is newly supported with .NET. The packages for .NET 9 aren't published yet.
+
[!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)
+SUSE Enterprise Linux 16 is newly supported with .NET. The packages for .NET 8 aren't published yet.
+
[!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)]
@@ -71,7 +73,7 @@ sudo rpm -Uvh https://packages.microsoft.com/config/sles/16/packages-microsoft-p
sudo rpm -Uvh https://packages.microsoft.com/config/sles/15/packages-microsoft-prod.rpm
```
-Currently, the SLES 15 Microsoft repository setup package installs the *microsoft-prod.repo* file to the wrong directory, preventing zypper from finding the .NET packages. To fix this problem, create a symlink in the correct directory.
+Currently, the SLES 15 Microsoft repository setup package installs the `microsoft-prod.repo` file to the wrong directory, preventing zypper from finding the .NET packages. To fix this problem, create a symlink in the correct directory.
```bash
sudo ln -s /etc/yum.repos.d/microsoft-prod.repo /etc/zypp/repos.d/microsoft-prod.repo
@@ -103,7 +105,7 @@ sudo ln -s /etc/yum.repos.d/microsoft-prod.repo /etc/zypp/repos.d/microsoft-prod
## Troubleshoot the package manager
-This section provides information on common errors you may get while using the package manager to install .NET.
+This section provides information on common errors you might get while using the package manager to install .NET.
### Unable to find package
@@ -115,13 +117,13 @@ This section provides information on common errors you may get while using the p
## 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:
+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 must make sure these libraries are installed:
- krb5
- libicu
- libopenssl1_1
-If the target runtime environment's OpenSSL version is 1.1 or newer, you'll need to install `compat-openssl10`.
+If the target runtime environment's OpenSSL version is 1.1 or newer, install the `compat-openssl10` package.
Dependencies can be installed with the `zypper install` command. The following snippet demonstrates installing the `krb5` library:
diff --git a/docs/core/install/linux-snap-runtime.md b/docs/core/install/linux-snap-runtime.md
index 965242ae9cc78..a012e1f280a56 100644
--- a/docs/core/install/linux-snap-runtime.md
+++ b/docs/core/install/linux-snap-runtime.md
@@ -42,17 +42,18 @@ The following steps install the .NET 9 runtime snap package:
Each .NET Runtime is published as an individual snap package. The following table lists the packages:
-| .NET version | Snap package | .NET version supported by Microsoft |
-|---------------------------------------------------|---------------------|-----|
-| [9 (STS)](https://snapcraft.io/dotnet-runtime-90) | `dotnet-runtime-90` | Yes |
-| [8 (LTS)](https://snapcraft.io/dotnet-runtime-80) | `dotnet-runtime-80` | Yes |
-| [7 (STS)](https://snapcraft.io/dotnet-runtime-70) | `dotnet-runtime-70` | No |
-| [6 (LTS)](https://snapcraft.io/dotnet-runtime-60) | `dotnet-runtime-60` | No |
-| [5](https://snapcraft.io/dotnet-runtime-50) | `dotnet-runtime-50` | No |
-| [3.1](https://snapcraft.io/dotnet-runtime-31) | `dotnet-runtime-31` | No |
-| [3.0](https://snapcraft.io/dotnet-runtime-30) | `dotnet-runtime-30` | No |
-| [2.2](https://snapcraft.io/dotnet-runtime-22) | `dotnet-runtime-22` | No |
-| [2.1](https://snapcraft.io/dotnet-runtime-21) | `dotnet-runtime-21` | No |
+| .NET version | Snap package | .NET version supported by Microsoft |
+|-----------------------------------------------------|----------------------|-------------------------------------|
+| [10 (LTS)](https://snapcraft.io/dotnet-runtime-100) | `dotnet-runtime-100` | Yes |
+| [9 (STS)](https://snapcraft.io/dotnet-runtime-90) | `dotnet-runtime-90` | Yes |
+| [8 (LTS)](https://snapcraft.io/dotnet-runtime-80) | `dotnet-runtime-80` | Yes |
+| [7 (STS)](https://snapcraft.io/dotnet-runtime-70) | `dotnet-runtime-70` | No |
+| [6 (LTS)](https://snapcraft.io/dotnet-runtime-60) | `dotnet-runtime-60` | No |
+| [5](https://snapcraft.io/dotnet-runtime-50) | `dotnet-runtime-50` | No |
+| [3.1](https://snapcraft.io/dotnet-runtime-31) | `dotnet-runtime-31` | No |
+| [3.0](https://snapcraft.io/dotnet-runtime-30) | `dotnet-runtime-30` | No |
+| [2.2](https://snapcraft.io/dotnet-runtime-22) | `dotnet-runtime-22` | No |
+| [2.1](https://snapcraft.io/dotnet-runtime-21) | `dotnet-runtime-21` | No |
## 2. Enable the dotnet command
diff --git a/docs/core/install/linux-snap-sdk.md b/docs/core/install/linux-snap-sdk.md
index 6f641523d4a39..1aeb0c5b4fd05 100644
--- a/docs/core/install/linux-snap-sdk.md
+++ b/docs/core/install/linux-snap-sdk.md
@@ -3,9 +3,10 @@ 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/07/2025
+ms.date: 11/14/2025
ms.topic: install-set-up-deploy
ms.custom: linux-related-content, updateeachrelease
+ai-usage: ai-assisted
#customer intent: As a Linux user, I want to install .NET SDK through Snap.
---
@@ -37,40 +38,59 @@ Your Linux distribution might already include snap. Try running `snap` from a te
[!INCLUDE [linux-release-wait](includes/linux-release-wait.md)]
-Snap packages for the .NET SDK are all published under the same identifier: `dotnet-sdk`. A specific version of the SDK can be installed by specifying the channel. The SDK includes both the ASP.NET Core and .NET runtime, versioned to the SDK.
+Starting with .NET 9, snap packages for the .NET SDK are published under version-specific identifiers (for example, `dotnet-sdk-90` for .NET 9 and `dotnet-sdk-100` for .NET 10). Prior to .NET 9, all SDK versions were published under the same identifier `dotnet-sdk`, and you specified the version through a channel. Additionally, .NET 9 and later snap packages support both x64 and Arm64 architectures, while earlier versions only support x64. The SDK includes both the ASP.NET Core and .NET runtime, versioned to the SDK.
> [!TIP]
> The [Snapcraft .NET SDK package page](https://snapcraft.io/dotnet-sdk) includes distribution-specific instructions on how to install Snapcraft and .NET.
01. Open a terminal.
-01. Use `snap install` to install the .NET SDK snap package. For example, the following command installs the `latest/stable` channel, which is the default.
+01. Use `snap install` to install the .NET SDK snap package.
- ```bash
- sudo snap install dotnet-sdk --classic
- ```
+ The `--classic` parameter is required.
+
+ - **For .NET 9 and later**
+
+ Install the version-specific package. For example, the following command installs .NET SDK 10:
+
+ ```bash
+ sudo snap install dotnet-sdk-100 --classic
+ ```
+
+ - **For .NET 8 and earlier**
- - The `--classic` parameter is required.
- - Use the `--channel` parameter to specify which version to install. If this parameter is omitted, `latest/stable` is used. For example, `--channel 8.0/stable` installs .NET SDK 8.0.
+ Install from the `dotnet-sdk` package and specify a channel. If this parameter is omitted, `latest/stable` is used. For example, the following command installs .NET SDK 8:
+
+ ```bash
+ sudo snap install dotnet-sdk --classic --channel 8.0/stable
+ ```
The `dotnet` snap alias is automatically created and mapped to the snap package's `dotnet` command.
-The following table lists the package channels you can install:
+The following table lists the snap packages and 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 | `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) |
+| .NET version | Snap package or channel |
+|--------------|----------------------------------------|
+| 10 (LTS) | `dotnet-sdk-100` (preview) |
+| 9 (STS) | `dotnet-sdk-90` |
+| 8 (LTS) | `dotnet-sdk --channel 8.0/stable` |
+| 7 | `dotnet-sdk --channel 7.0/stable` (out of support) |
+| 6 | `dotnet-sdk --channel 6.0/stable` (out of support) |
+| 5 | `dotnet-sdk --channel 5.0/stable` (out of support) |
+| 3.1 | `dotnet-sdk --channel 3.1/stable` (out of support) |
+| 2.1 | `dotnet-sdk --channel 2.1/stable` (out of support) |
## 2. Export the install location
The `DOTNET_ROOT` environment variable is often used by tools to determine where .NET is installed. When .NET is installed through Snap, this environment variable isn't configured. You should configure the *DOTNET_ROOT* environment variable in your profile. The path to the snap uses the following format: `/snap/{package}/current`.
+For .NET 9 and later, use the version-specific package name:
+
+```bash
+export DOTNET_ROOT=/snap/dotnet-sdk-100/current
+```
+
+For .NET 8 and earlier, use the shared package name:
+
```bash
export DOTNET_ROOT=/snap/dotnet-sdk/current
```
@@ -85,7 +105,7 @@ You can edit your shell profile to permanently add the commands. There are many
- **Korn Shell**: _~/.kshrc_ or _.profile_
- **Z Shell**: _~/.zshrc* or _.zprofile_
-Edit the appropriate source file for your shell and add `export DOTNET_ROOT=/snap/dotnet-sdk/current`.
+Edit the appropriate source file for your shell and add the export command for your installed .NET version. For .NET 9+, use `export DOTNET_ROOT=/snap/dotnet-sdk-100/current` (adjust the version number as needed). For .NET 8 and earlier, use `export DOTNET_ROOT=/snap/dotnet-sdk/current`.
## 3. Use the .NET CLI
@@ -122,7 +142,15 @@ To learn how to use the .NET CLI, see [.NET CLI overview](../tools/index.md).
### The dotnet terminal command doesn't work
-Snap packages can map an alias to a command provided by the package. By default, the .NET SDK snap packages create an alias for the `dotnet` command. If the alias wasn't created or was previously removed, the following command shows how to map the alias:
+Snap packages can map an alias to a command provided by the package. By default, the .NET SDK snap packages create an alias for the `dotnet` command. If the alias wasn't created or was previously removed, use the following command to map the alias.
+
+For .NET 9 and later:
+
+```bash
+sudo snap alias dotnet-sdk-100.dotnet dotnet
+```
+
+For .NET 8 and earlier:
```bash
sudo snap alias dotnet-sdk.dotnet dotnet
@@ -161,7 +189,13 @@ Try the following steps to fix the issue:
- `/usr/local/bin/dotnet`
- `/usr/share/dotnet`
- Use the following command to create a symbolic link to the snap package:
+ Use the following command to create a symbolic link to the snap package. For .NET 9 and later, use the version-specific package name:
+
+ ```bash
+ ln -s /snap/dotnet-sdk-100/current/dotnet /usr/local/bin/dotnet
+ ```
+
+ For .NET 8 and earlier:
```bash
ln -s /snap/dotnet-sdk/current/dotnet /usr/local/bin/dotnet
From ebb3d39a9563a1df84b866f0636f0e6acbe181aa Mon Sep 17 00:00:00 2001
From: Copilot <198982749+Copilot@users.noreply.github.com>
Date: Fri, 14 Nov 2025 15:14:04 -0500
Subject: [PATCH 13/19] Remove misleading nominal types section from F#
anonymous records documentation (#49288)
* Initial plan
* Remove misleading nominal types section from anonymous records article
Co-authored-by: BillWagner <493969+BillWagner@users.noreply.github.com>
* Add ai-usage frontmatter to anonymous-records.md
Co-authored-by: BillWagner <493969+BillWagner@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: BillWagner <493969+BillWagner@users.noreply.github.com>
---
.../language-reference/anonymous-records.md | 26 ++-----------------
1 file changed, 2 insertions(+), 24 deletions(-)
diff --git a/docs/fsharp/language-reference/anonymous-records.md b/docs/fsharp/language-reference/anonymous-records.md
index e6399f588a448..1dfc8ec10e595 100644
--- a/docs/fsharp/language-reference/anonymous-records.md
+++ b/docs/fsharp/language-reference/anonymous-records.md
@@ -2,6 +2,7 @@
title: Anonymous Records
description: Learn how to construct and use anonymous records, a language feature that helps with the manipulation of data.
ms.date: 11/04/2021
+ai-usage: ai-assisted
---
# Anonymous Records
@@ -181,29 +182,6 @@ let data3 = struct {| data2 with Z = r2.X |}
Anonymous records have a number of characteristics that are essential to fully understanding how they can be used.
-### Anonymous records are nominal
-
-Anonymous records are [nominal types](https://en.wikipedia.org/wiki/Nominal_type_system). They are best thought of as named [record](records.md) types (which are also nominal) that do not require an up-front declaration.
-
-Consider the following example with two anonymous record declarations:
-
-```fsharp
-let x = {| X = 1 |}
-let y = {| Y = 1 |}
-```
-
-The `x` and `y` values have different types and are not compatible with one another. They are not equatable and they are not comparable. To illustrate this, consider a named record equivalent:
-
-```fsharp
-type X = { X: int }
-type Y = { Y: int }
-
-let x = { X = 1 }
-let y = { Y = 1 }
-```
-
-There isn't anything inherently different about anonymous records when compared with their named record equivalents when concerning type equivalency or comparison.
-
### Anonymous records use structural equality and comparison
Like record types, anonymous records are structurally equatable and comparable. This is only true if all constituent types support equality and comparison, like with record types. To support equality or comparison, two anonymous records must have the same "shape".
@@ -255,7 +233,7 @@ Anonymous records have some restrictions in their usage. Some are inherent to th
Anonymous records do not support pattern matching, unlike named records. There are three reasons:
-1. A pattern would have to account for every field of an anonymous record, unlike named record types. This is because anonymous records do not support structural subtyping – they are nominal types.
+1. A pattern would have to account for every field of an anonymous record, unlike named record types. This is because anonymous records do not support structural subtyping – they require exact field matching.
2. Because of (1), there is no ability to have additional patterns in a pattern match expression, as each distinct pattern would imply a different anonymous record type.
3. Because of (2), any anonymous record pattern would be more verbose than the use of “dot” notation.
From 70f240dfaf03809b3d6002a54b69f44f6919333c Mon Sep 17 00:00:00 2001
From: Copilot <198982749+Copilot@users.noreply.github.com>
Date: Fri, 14 Nov 2025 15:14:16 -0600
Subject: [PATCH 14/19] Add documentation for
DOTNET_SKIP_WORKLOAD_INTEGRITY_CHECK environment variable (#49697)
* Initial plan
* Add documentation for DOTNET_SKIP_WORKLOAD_INTEGRITY_CHECK environment variable
Co-authored-by: meaghanlewis <10103121+meaghanlewis@users.noreply.github.com>
* Refine writing style for DOTNET_SKIP_WORKLOAD_INTEGRITY_CHECK documentation
Co-authored-by: meaghanlewis <10103121+meaghanlewis@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: meaghanlewis <10103121+meaghanlewis@users.noreply.github.com>
---
docs/core/tools/dotnet-environment-variables.md | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/docs/core/tools/dotnet-environment-variables.md b/docs/core/tools/dotnet-environment-variables.md
index 286a8d564ece5..836d3297c6524 100644
--- a/docs/core/tools/dotnet-environment-variables.md
+++ b/docs/core/tools/dotnet-environment-variables.md
@@ -357,6 +357,10 @@ Disables background download of advertising manifests for workloads. Default is
Specifies the minimum number of hours between background downloads of advertising manifests for workloads. The default is `24`, which is no more frequently than once a day. For more information, see [Advertising manifests](dotnet-workload-install.md#advertising-manifests).
+### `DOTNET_SKIP_WORKLOAD_INTEGRITY_CHECK`
+
+Specifies whether to skip the workload integrity check on first-run. The integrity check ensures that workloads from previous feature bands are accessible to the currently installed SDK. Set the value to `true`, `1`, or `yes` to skip the check. The default is `false`, meaning the integrity check is performed.
+
### `DOTNET_TOOLS_ALLOW_MANIFEST_IN_ROOT`
Specifies whether .NET SDK local tools search for tool manifest files in the root folder on Windows. The default is `false`.
From f2a5af2b9842c9251adac0cd4df3c458593b3563 Mon Sep 17 00:00:00 2001
From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Date: Fri, 14 Nov 2025 13:49:44 -0800
Subject: [PATCH 15/19] Update package index with latest published versions
(#49909)
---
docs/azure/includes/dotnet-all.md | 2 +-
docs/azure/includes/dotnet-new.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index ab3b055f3459c..a351806b2b378 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -1,7 +1,7 @@
| Name | Package | Docs | Source |
| ---- | ------- | ---- | ------ |
| AI Agents Persistent | NuGet [1.1.0](https://www.nuget.org/packages/Azure.AI.Agents.Persistent/1.1.0) NuGet [1.2.0-beta.7](https://www.nuget.org/packages/Azure.AI.Agents.Persistent/1.2.0-beta.7) | [docs](/dotnet/api/overview/azure/AI.Agents.Persistent-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Agents.Persistent_1.1.0/sdk/ai/Azure.AI.Agents.Persistent/) GitHub [1.2.0-beta.7](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Agents.Persistent_1.2.0-beta.7/sdk/ai/Azure.AI.Agents.Persistent/) |
-| 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 Foundry | NuGet [1.1.0](https://www.nuget.org/packages/Azure.AI.Projects/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.AI.Projects/1.2.0-beta.1) | [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/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Projects_1.2.0-beta.1/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.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/) |
diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md
index c1a0adf9dade0..a62dc12e484e4 100644
--- a/docs/azure/includes/dotnet-new.md
+++ b/docs/azure/includes/dotnet-new.md
@@ -1,7 +1,7 @@
| Name | Package | Docs | Source |
| ---- | ------- | ---- | ------ |
| AI Agents Persistent | NuGet [1.1.0](https://www.nuget.org/packages/Azure.AI.Agents.Persistent/1.1.0) NuGet [1.2.0-beta.7](https://www.nuget.org/packages/Azure.AI.Agents.Persistent/1.2.0-beta.7) | [docs](/dotnet/api/overview/azure/AI.Agents.Persistent-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Agents.Persistent_1.1.0/sdk/ai/Azure.AI.Agents.Persistent/) GitHub [1.2.0-beta.7](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Agents.Persistent_1.2.0-beta.7/sdk/ai/Azure.AI.Agents.Persistent/) |
-| 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 Foundry | NuGet [1.1.0](https://www.nuget.org/packages/Azure.AI.Projects/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.AI.Projects/1.2.0-beta.1) | [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/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Projects_1.2.0-beta.1/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.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/) |
From 97b6254b0e6b97f56f0c6119a75e43f64a1a856e Mon Sep 17 00:00:00 2001
From: Bill Wagner
Date: Fri, 14 Nov 2025 17:08:19 -0500
Subject: [PATCH 16/19] edit pass based on feedback (#49911)
* edit pass based on feedback
Fixes #49604
Also, searched for other instances of Visual Studio preview (which is now generally released) and update those as well.
* Copilot review updates
* Apply suggestions from code review
---
.../compound-assignment-operators.md | 44 +++++++++++--------
.../whats-new/tutorials/extension-members.md | 2 +-
2 files changed, 26 insertions(+), 20 deletions(-)
diff --git a/docs/csharp/whats-new/tutorials/compound-assignment-operators.md b/docs/csharp/whats-new/tutorials/compound-assignment-operators.md
index 6e4611ed48495..b0ec9ec4faa36 100644
--- a/docs/csharp/whats-new/tutorials/compound-assignment-operators.md
+++ b/docs/csharp/whats-new/tutorials/compound-assignment-operators.md
@@ -1,17 +1,17 @@
---
-title: Explore user defined instance compound assignment operators
-description: "C# 14 enables user defined instance compound assignment operators. These operators can provide better performance by minimizing allocations or copy operations. Learn how to create these operators."
+title: Explore user-defined instance compound assignment operators
+description: "C# 14 enables user-defined instance compound assignment operators. These operators can provide better performance by minimizing allocations or copy operations. Learn how to create these operators."
author: billwagner
ms.author: wiwagn
ms.service: dotnet-csharp
ms.topic: tutorial
-ms.date: 09/15/2025
+ms.date: 11/14/2025
ai-usage: ai-assisted
-#customer intent: As a C# developer, I want implement user defined instance compound assignment operators so that my algorithms are more efficient.
+#customer intent: As a C# developer, I want to implement user-defined instance compound assignment operators so that my algorithms are more efficient.
---
# Tutorial: Create compound assignment operators
-C#14.0 adds *user defined compound assignment operators* that enable mutating a data structure in place, rather than creating a new instance. In previous versions of C#, the expression:
+C#14 adds [*user-defined compound assignment operators*](~/_csharplang/proposals/csharp-14.0/user-defined-compound-assignment.md) that enable mutating a data structure in place, rather than creating a new instance. In previous versions of C#, the expression:
```csharp
a += b;
@@ -20,27 +20,28 @@ a += b;
Was expanded to the following code:
```csharp
+// compiler-generated code prior to C# 13:
var tmp = a + b;
a = tmp;
```
-Depending on the type of `a`, this expansion leads to excessive allocations to create new instances, or copying the values of several properties to set values on the copy. Adding a user defined operator for `+=` indicates a type can do a better job by updating the destination object in place.
+Depending on the type of `a`, this expansion leads to excessive allocations to create new instances, or copying the values of several properties to set values on the copy. Adding a user-defined operator for `+=` indicates a type can do a better job by updating the destination object in place.
-C# supports the existing expansion, but it uses it only when a compound user defined operator isn't available.
+C# supports the existing expansion, but it uses it only when a compound user-defined operator isn't available.
In this tutorial, you:
> [!div class="checklist"]
>
-> * Install prerequisites
-> * Analyze the starting sample
-> * Implement compound assignment operators
-> * Analyze completed sample
+> * Run the starting sample.
+> * Identify bottlenecks in the code.
+> * Implement new compound assignment operators.
+> * Analyze the completed sample.
## Prerequisites
- 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/).
+- Visual Studio 2026. Download it from the [Visual Studio page](https://visualstudio.microsoft.com).
## Analyze the starting sample
@@ -50,15 +51,17 @@ The app tracks attendance through multiple theater gates (main floor and balcony
:::code language="csharp" source="./snippets/CompoundAssignment/GateAttendanceTests.cs" id="Simulation":::
-With traditional operators, each operation creates a new `GateAttendance` instance due to the immutable nature of records, leading to significant memory allocations.
+## Identify bottlenecks in the code
-When you run the simulation, you see detailed output showing:
+With traditional operators, each operation creates a new `GateAttendance` instance, leading to significant memory allocations. The starter `GateAttendance` is *immutable*. Your code can't modify the state of the object after it's been initialized. That design decision requires copying objects if you need to modify state.
+
+When you run the simulation, the detailed output shows:
- Gate-by-gate attendance numbers during different arrival periods.
- Total attendance tracking across all gates.
- A final comprehensive report with attendance statistics.
-You can see a portion of the output:
+The following text displays some of the example output:
```txt
Peak arrival time - all gates busy...
@@ -92,7 +95,7 @@ Examine the starter `GateAttendance` record class:
The `InitialImplementation.GateAttendance` record demonstrates the traditional approach to operator overloading in C#. Notice how both the increment operator (`++`) and addition operator (`+`) create entirely new instances of `GateAttendance` using the `with` expression. Each time you write `gate++` or `gate += partySize`, the operators allocate a new record instance with the updated `Count` value, then return that new instance. While this approach maintains immutability and thread safety, it comes at the cost of frequent memory allocations. In scenarios with many operations—like the concert simulation with hundreds of attendance updates—these allocations accumulate quickly, potentially impacting performance and increasing garbage collection pressure.
-To see this allocation behavior in action, try running the [.NET Object Allocation tracking tool](/visualstudio/profiling/dotnet-alloc-tool) in Visual Studio. When you profile the current implementation during the concert simulation, you discover that it allocates 134 `GateAttendance` objects to complete the relatively small simulation. Each operator call creates a new instance, demonstrating how quickly allocations can accumulate in real-world scenarios. This measurement provides a concrete baseline for comparing the performance improvements you achieve with compound assignment operators.
+To measure this allocation behavior, try running the [.NET Object Allocation tracking tool](/visualstudio/profiling/dotnet-alloc-tool) in Visual Studio. When you profile the current implementation during the concert simulation, you discover that it allocates 134 `GateAttendance` objects to complete the relatively small simulation. Each operator call creates a new instance, demonstrating how quickly allocations can accumulate in real-world scenarios. This measurement provides a concrete baseline for comparing the performance improvements you achieve with compound assignment operators.
## Implement compound assignment operators
@@ -129,9 +132,12 @@ The new compound assignment operators are shown in the following code:
:::code language="csharp" source="./snippets/CompoundAssignment/GateAttendance.cs" id="CompoundAssignmentOperators":::
+> [!NOTE]
+> Developers familiar with C++ might wonder why only one `++` or `--` operator is required. The compiler generates the code to use either the expression before or after modification as the return value. The compiler-generated code performs the assignment using either the original value or the modified value based on whether pre-increment (`++x`) or post-increment (`x++`) was called.
+
## Analyze finished sample
-Now that you implemented the compound assignment operators, it's time to measure the performance improvement. To see the dramatic difference in memory allocations, run the [.NET Object Allocation tracking tool](/visualstudio/profiling/dotnet-alloc-tool) again on the updated code.
+Now that you implemented the compound assignment operators, it's time to measure the performance improvement. To measure the dramatic difference in memory allocations, run the [.NET Object Allocation tracking tool](/visualstudio/profiling/dotnet-alloc-tool) again on the updated code.
When you profile the application with the compound assignment operators enabled, you observe a remarkable reduction: only **10 `GateAttendance` objects** are allocated during the entire concert simulation, compared to the previous 134 allocations. This update represents a 92% reduction in object allocations!
@@ -146,9 +152,9 @@ This allocation reduction translates to real performance benefits:
The performance improvement becomes even more significant in production applications where similar patterns occur at much larger scales—imagine tracking millions of transactions, updating thousands of counters, or processing high-frequency data streams.
-Try identifying other opportunities for compound assignment operators in the codebase. Look for patterns where you see traditional assignment operations like `gates.MainFloorGates[1] = gates.MainFloorGates[1] + 4` and consider whether they could benefit from compound assignment syntax. While some of these operations are already using `+=` in the simulation code, the principle applies to any scenario where you repeatedly modify objects rather than creating new instances.
+Try identifying other opportunities for compound assignment operators in the codebase. Look for patterns where you use traditional assignment operations like `gates.MainFloorGates[1] = gates.MainFloorGates[1] + 4` and consider whether they could benefit from compound assignment syntax. While some of these operations are already using `+=` in the simulation code, the principle applies to any scenario where you repeatedly modify objects rather than creating new instances.
-As a final experiment, change the `GateAttendance` type from a `record class` to a `record struct`. It's a different optimization, and it works in this simulation because the struct has a small memory footprint. Copying a `GateAttendance` struct isn't an expensive operation. Even so, you see small improvements.
+As a final experiment, change the `GateAttendance` type from a `record class` to a `record struct`. It's a different optimization, and it works in this simulation because the struct has a small memory footprint. Copying a `GateAttendance` struct isn't an expensive operation. Even so, you achieve small improvements.
## Related content
diff --git a/docs/csharp/whats-new/tutorials/extension-members.md b/docs/csharp/whats-new/tutorials/extension-members.md
index 6b03cc92fd292..8b017d0cb2f59 100644
--- a/docs/csharp/whats-new/tutorials/extension-members.md
+++ b/docs/csharp/whats-new/tutorials/extension-members.md
@@ -27,7 +27,7 @@ In this tutorial, you:
## Prerequisites
- 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/).
+- Visual Studio 2026. Download it from the [Visual Studio page](https://visualstudio.microsoft.com).
## Create the sample application
From f77c22b9029d3834b2224b9a1ecc3b63c1833b9b Mon Sep 17 00:00:00 2001
From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Date: Fri, 14 Nov 2025 15:00:16 -0800
Subject: [PATCH 17/19] Update package index with latest published versions
(#49912)
---
docs/azure/includes/dotnet-all.md | 2 +-
docs/azure/includes/dotnet-new.md | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index a351806b2b378..b682d7edbe6c7 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -7,7 +7,7 @@
| 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) NuGet [8.5.0-preview](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.AzureAppConfiguration/8.5.0-preview) | [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/) |
+| Azure AI Search | NuGet [11.7.0](https://www.nuget.org/packages/Azure.Search.Documents/11.7.0) NuGet [11.8.0-beta.1](https://www.nuget.org/packages/Azure.Search.Documents/11.8.0-beta.1) | [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/) GitHub [11.8.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Search.Documents_11.8.0-beta.1/sdk/search/Azure.Search.Documents/) |
| Azure Object Anchors Conversion | NuGet [0.3.0-beta.6](https://www.nuget.org/packages/Azure.MixedReality.ObjectAnchors.Conversion/0.3.0-beta.6) | [docs](/dotnet/api/overview/azure/MixedReality.ObjectAnchors.Conversion-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [0.3.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.MixedReality.ObjectAnchors.Conversion_0.3.0-beta.6/sdk/objectanchors/Azure.MixedReality.ObjectAnchors.Conversion/) |
| Azure Remote Rendering | NuGet [1.1.0](https://www.nuget.org/packages/Azure.MixedReality.RemoteRendering/1.1.0) | [docs](/dotnet/api/overview/azure/MixedReality.RemoteRendering-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.MixedReality.RemoteRendering_1.1.0/sdk/remoterendering/Azure.MixedReality.RemoteRendering/) |
| Code Transparency | NuGet [1.0.0-beta.5](https://www.nuget.org/packages/Azure.Security.CodeTransparency/1.0.0-beta.5) | [docs](/dotnet/api/overview/azure/Security.CodeTransparency-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.5](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Security.CodeTransparency_1.0.0-beta.5/sdk/confidentialledger/Azure.Security.CodeTransparency/) |
diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md
index a62dc12e484e4..c769f88ffce94 100644
--- a/docs/azure/includes/dotnet-new.md
+++ b/docs/azure/includes/dotnet-new.md
@@ -7,7 +7,7 @@
| 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) NuGet [8.5.0-preview](https://www.nuget.org/packages/Microsoft.Extensions.Configuration.AzureAppConfiguration/8.5.0-preview) | [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/) |
+| Azure AI Search | NuGet [11.7.0](https://www.nuget.org/packages/Azure.Search.Documents/11.7.0) NuGet [11.8.0-beta.1](https://www.nuget.org/packages/Azure.Search.Documents/11.8.0-beta.1) | [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/) GitHub [11.8.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Search.Documents_11.8.0-beta.1/sdk/search/Azure.Search.Documents/) |
| Azure Object Anchors Conversion | NuGet [0.3.0-beta.6](https://www.nuget.org/packages/Azure.MixedReality.ObjectAnchors.Conversion/0.3.0-beta.6) | [docs](/dotnet/api/overview/azure/MixedReality.ObjectAnchors.Conversion-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [0.3.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.MixedReality.ObjectAnchors.Conversion_0.3.0-beta.6/sdk/objectanchors/Azure.MixedReality.ObjectAnchors.Conversion/) |
| Azure Remote Rendering | NuGet [1.1.0](https://www.nuget.org/packages/Azure.MixedReality.RemoteRendering/1.1.0) | [docs](/dotnet/api/overview/azure/MixedReality.RemoteRendering-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.MixedReality.RemoteRendering_1.1.0/sdk/remoterendering/Azure.MixedReality.RemoteRendering/) |
| Calling Server | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Communication.CallingServer/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Communication.CallingServer-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Communication.CallingServer_1.0.0-beta.3/sdk/communication/Azure.Communication.CallingServer/) |
From b3f2830a7c075c82988481b99ab1c9f258044f97 Mon Sep 17 00:00:00 2001
From: Copilot <198982749+Copilot@users.noreply.github.com>
Date: Fri, 14 Nov 2025 16:47:40 -0800
Subject: [PATCH 18/19] Add .NET 10+ native shell completion documentation
(#49908)
* Initial plan
* Add .NET 10+ native shell completion documentation
Co-authored-by: meaghanlewis <10103121+meaghanlewis@users.noreply.github.com>
* Fix table alignment for markdown linting
Co-authored-by: meaghanlewis <10103121+meaghanlewis@users.noreply.github.com>
* Add AI-usage metadata to frontmatter
Co-authored-by: meaghanlewis <10103121+meaghanlewis@users.noreply.github.com>
* edit pass
* Clarify documentation on shell inference for tab completion
* use more active verb
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: meaghanlewis <10103121+meaghanlewis@users.noreply.github.com>
Co-authored-by: Meaghan Osagie
---
docs/core/tools/enable-tab-autocomplete.md | 123 ++++++++++++++++++---
1 file changed, 106 insertions(+), 17 deletions(-)
diff --git a/docs/core/tools/enable-tab-autocomplete.md b/docs/core/tools/enable-tab-autocomplete.md
index 77e90dcad542b..5ea6ce26c1f26 100644
--- a/docs/core/tools/enable-tab-autocomplete.md
+++ b/docs/core/tools/enable-tab-autocomplete.md
@@ -1,17 +1,106 @@
---
title: Enable tab completion
-description: This article teaches you how to enable tab completion for the .NET CLI for PowerShell, Bash, zsh, fish, and nushell.
+description: This article teaches you how to enable tab completion for the .NET CLI for PowerShell (pwsh), Bash, zsh, fish, and nushell.
author: adegeo
ms.author: adegeo
ms.topic: how-to
-ms.date: 07/06/2023
+ms.date: 11/14/2025
+ai-usage: ai-assisted
---
# How to enable tab completion for the .NET CLI
-**This article applies to:** ✔️ .NET Core 2.1 SDK and later versions
+**This article applies to:** ✔️ .NET 6 SDK and later versions
-This article describes how to configure tab completion for five shells: PowerShell, Bash, zsh, fish, and nushell. For other shells, refer to their documentation on how to configure tab completion.
+This article describes how to configure tab completion for five shells: PowerShell (pwsh), Bash, zsh, fish, and nushell. For other shells, refer to their documentation on how to configure tab completion.
+
+## Native shell completion scripts (.NET 10+)
+
+Starting with .NET 10, the .NET CLI includes native shell completion scripts that run much faster than the dynamic completions available in earlier versions. Native completions generate shell-specific scripts that handle the static parts of the CLI grammar directly in the shell, providing a significant performance improvement.
+
+### Generate completion scripts
+
+Use the `dotnet completions generate` command to generate a completion script for your shell:
+
+```console
+dotnet completions generate [SHELL]
+```
+
+The `[SHELL]` parameter accepts one of the following values:
+
+- `bash`
+- `fish`
+- `nushell`
+- `pwsh`
+- `zsh`
+
+If you don't specify a shell, the command infers the correct shell from your environment. On Windows, it defaults to PowerShell (`pwsh`). On other systems, it checks if the file name of the `SHELL` environment variable matches any of the supported shell values.
+
+### Completion capabilities
+
+Native completions provide different levels of support depending on the shell:
+
+| Shell | Completion type | Descriptions in tab completions |
+|------------|-----------------|-------------------------------------|
+| bash | hybrid | No |
+| fish | dynamic | No |
+| nushell | dynamic | No |
+| PowerShell | hybrid | Yes |
+| zsh | hybrid | Yes |
+
+**Completion types:**
+
+- **Hybrid**: Generates shell-specific code that handles static parts of the CLI grammar quickly, but falls back to the `dotnet complete` command for dynamic content (such as NuGet package IDs).
+- **Dynamic**: All completions go through the `dotnet complete` command, which might be slower but ensures comprehensive coverage.
+
+### Configure shells to use native completions
+
+Add the appropriate command to your shell's profile to enable native completions:
+
+#### PowerShell
+
+Add the following line to your PowerShell profile (`$PROFILE`):
+
+```powershell
+dotnet completions generate pwsh | Out-String | Invoke-Expression
+```
+
+#### Bash
+
+Add the following line to your `.bashrc` file:
+
+```bash
+eval "$(dotnet completions generate bash)"
+```
+
+#### Zsh
+
+Add the following line to your `.zshrc` file:
+
+```zsh
+eval "$(dotnet completions generate zsh)"
+```
+
+#### Fish
+
+Add the following line to your `config.fish` file:
+
+```fish
+dotnet completions generate fish | source
+```
+
+#### Nushell
+
+Add the following to the beginning of your `config.nu` file:
+
+```nu
+dotnet completions generate nushell | save -f ~/.local/share/nushell/completions/dotnet.nu
+use ~/.local/share/nushell/completions/dotnet.nu *
+```
+
+## Dynamic completion scripts (all versions)
+
+For .NET versions prior to .NET 10, or if you prefer to use dynamic completions, you can configure your shell to use the `dotnet complete` command. Dynamic completions work by sending the current command line to the `dotnet complete` command and processing the results in the shell.
Once set up, tab completion for the .NET CLI is triggered by entering a `dotnet` command in the shell and then pressing the Tab key. The current command line is sent to the `dotnet complete` command, and the results are processed by the shell. You can test the results without enabling tab completion by sending something directly to the `dotnet complete` command. For example:
@@ -26,19 +115,19 @@ pack
If that command doesn't work, make sure that .NET Core 2.0 SDK or later is installed. If it's installed but that command still doesn't work, make sure that the `dotnet` command resolves to a version of .NET Core 2.0 SDK or later. Use the `dotnet --version` command to see what version of `dotnet` your current path is resolving to. For more information, see [Select the .NET version to use](../versions/selection.md).
-## Examples
+### Examples
Here are some examples of what tab completion provides:
-| Input | Becomes | Because |
-|:----------------|:--------------------|:-----------------------------------------------|
-| `dotnet a⇥` | `dotnet add` | `add` is the first subcommand, alphabetically. |
-| `dotnet add p⇥` | `dotnet add --help` | Tab completion matches substrings, and `--help` comes first alphabetically. |
-| `dotnet add p⇥⇥` | `dotnet add package` | Pressing tab a second time brings up the next suggestion. |
-| `dotnet package add Microsoft⇥` | `dotnet package add Microsoft.ApplicationInsights.Web` | Results are returned alphabetically. |
-| `dotnet reference remove ⇥` | `dotnet reference remove ..\..\src\OmniSharp.DotNet\OmniSharp.DotNet.csproj` | Tab completion is project file aware. |
+| Input | Becomes | Because |
+|---------------------------------|------------------------------------------------------------------------------|------------------------------------------------------------------------------|
+| `dotnet a⇥` | `dotnet add` | `add` is the first subcommand, alphabetically. |
+| `dotnet add p⇥` | `dotnet add --help` | Tab completion matches substrings, and `--help` comes first alphabetically. |
+| `dotnet add p⇥⇥` | `dotnet add package` | Pressing tab a second time brings up the next suggestion. |
+| `dotnet package add Microsoft⇥` | `dotnet package add Microsoft.ApplicationInsights.Web` | Results are returned alphabetically. |
+| `dotnet reference remove ⇥` | `dotnet reference remove ..\..\src\OmniSharp.DotNet\OmniSharp.DotNet.csproj` | Tab completion is project file aware. |
-## PowerShell
+### PowerShell
To add tab completion to **PowerShell** for the .NET CLI, create or edit the profile stored in the variable `$PROFILE`. For more information, see [How to create your profile](/powershell/module/microsoft.powershell.core/about/about_profiles#how-to-create-a-profile) and [Profiles and execution policy](/powershell/module/microsoft.powershell.core/about/about_profiles#profiles-and-execution-policy).
@@ -54,7 +143,7 @@ Register-ArgumentCompleter -Native -CommandName dotnet -ScriptBlock {
}
```
-## bash
+### bash
To add tab completion to your **bash** shell for the .NET CLI, add the following code to your `.bashrc` file:
@@ -74,7 +163,7 @@ function _dotnet_bash_complete()
complete -f -F _dotnet_bash_complete dotnet
```
-## zsh
+### zsh
To add tab completion to your **zsh** shell for the .NET CLI, add the following code to your `.zshrc` file:
@@ -99,7 +188,7 @@ _dotnet_zsh_complete()
compdef _dotnet_zsh_complete dotnet
```
-## fish
+### fish
To add tab completion to your **fish** shell for the .NET CLI, add the following code to your `config.fish` file:
@@ -107,7 +196,7 @@ To add tab completion to your **fish** shell for the .NET CLI, add the following
complete -f -c dotnet -a "(dotnet complete (commandline -cp))"
```
-## nushell
+### nushell
To add tab completion to your **nushell** for .NET CLI, add the following to the beginning of your `config.nu` file:
From e6dfff8d3afde902a12180296560eb98bbce0786 Mon Sep 17 00:00:00 2001
From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com>
Date: Fri, 14 Nov 2025 17:00:11 -0800
Subject: [PATCH 19/19] Update package index with latest published versions
(#49913)
---
docs/azure/includes/dotnet-all.md | 6 +++---
docs/azure/includes/dotnet-new.md | 4 ++--
2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index b682d7edbe6c7..326d00b6d6b5a 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -1,7 +1,7 @@
| Name | Package | Docs | Source |
| ---- | ------- | ---- | ------ |
| AI Agents Persistent | NuGet [1.1.0](https://www.nuget.org/packages/Azure.AI.Agents.Persistent/1.1.0) NuGet [1.2.0-beta.7](https://www.nuget.org/packages/Azure.AI.Agents.Persistent/1.2.0-beta.7) | [docs](/dotnet/api/overview/azure/AI.Agents.Persistent-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Agents.Persistent_1.1.0/sdk/ai/Azure.AI.Agents.Persistent/) GitHub [1.2.0-beta.7](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Agents.Persistent_1.2.0-beta.7/sdk/ai/Azure.AI.Agents.Persistent/) |
-| AI Foundry | NuGet [1.1.0](https://www.nuget.org/packages/Azure.AI.Projects/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.AI.Projects/1.2.0-beta.1) | [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/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Projects_1.2.0-beta.1/sdk/ai/Azure.AI.Projects/) |
+| AI Foundry | NuGet [1.1.0](https://www.nuget.org/packages/Azure.AI.Projects/1.1.0) NuGet [1.2.0-beta.2](https://www.nuget.org/packages/Azure.AI.Projects/1.2.0-beta.2) | [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/) GitHub [1.2.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Projects_1.2.0-beta.2/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.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/) |
@@ -79,7 +79,7 @@
| OpenAI Assistants | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.AI.OpenAI.Assistants/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/AI.OpenAI.Assistants-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI.Assistants_1.0.0-beta.4/sdk/openai/Azure.AI.OpenAI.Assistants/) |
| OpenAI Inference | NuGet [2.1.0](https://www.nuget.org/packages/Azure.AI.OpenAI/2.1.0) NuGet [2.5.0-beta.1](https://www.nuget.org/packages/Azure.AI.OpenAI/2.5.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.OpenAI-readme) | GitHub [2.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI_2.1.0/sdk/openai/Azure.AI.OpenAI/) GitHub [2.5.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI_2.5.0-beta.1/sdk/openai/Azure.AI.OpenAI/) |
| OpenTelemetry AspNetCore | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.AspNetCore/1.3.0) NuGet [1.4.0-beta.1](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.AspNetCore/1.4.0-beta.1) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.AspNetCore-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.AspNetCore_1.3.0/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/) GitHub [1.4.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.AspNetCore_1.4.0-beta.1/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/) |
-| OpenTelemetry Exporter | NuGet [1.4.0](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Exporter/1.4.0) NuGet [1.5.0-beta.1](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Exporter/1.5.0-beta.1) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.Exporter-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.Exporter_1.4.0/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/) GitHub [1.5.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.Exporter_1.5.0-beta.1/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/) |
+| OpenTelemetry Exporter | NuGet [1.5.0](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Exporter/1.5.0) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.Exporter-readme) | GitHub [1.5.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.Exporter_1.5.0/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/) |
| Personalizer | NuGet [2.0.0-beta.2](https://www.nuget.org/packages/Azure.AI.Personalizer/2.0.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.Personalizer-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [2.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Personalizer_2.0.0-beta.2/sdk/personalizer/Azure.AI.Personalizer/) |
| 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/) |
@@ -409,7 +409,7 @@
| Item Templates NetCore | NuGet [4.0.5337](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.ItemTemplates.NetCore/4.0.5337) | | |
| Item Templates NetFx | NuGet [4.0.5337](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.ItemTemplates.NetFx/4.0.5337) | | |
| Microsoft.Azure.DataFactoryTestingFramework.Expressions | NuGet [0.2.7](https://www.nuget.org/packages/Microsoft.Azure.DataFactoryTestingFramework.Expressions/0.2.7) | | |
-| Microsoft.Azure.Functions.Worker.OpenTelemetry | NuGet [1.1.0-preview6](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.OpenTelemetry/1.1.0-preview6) | | |
+| Microsoft.Azure.Functions.Worker.OpenTelemetry | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.OpenTelemetry/1.1.0) | | |
| OpenTelemetry Profiler | NuGet [1.0.0-beta6](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Profiler/1.0.0-beta6) | | |
| Speech CLI | NuGet [1.47.0](https://www.nuget.org/packages/Microsoft.CognitiveServices.Speech.CLI/1.47.0) | | |
| Speech Extension Embedded SR | NuGet [1.47.0](https://www.nuget.org/packages/Microsoft.CognitiveServices.Speech.Extension.Embedded.SR/1.47.0) | | |
diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md
index c769f88ffce94..98bdb0ec0bc53 100644
--- a/docs/azure/includes/dotnet-new.md
+++ b/docs/azure/includes/dotnet-new.md
@@ -1,7 +1,7 @@
| Name | Package | Docs | Source |
| ---- | ------- | ---- | ------ |
| AI Agents Persistent | NuGet [1.1.0](https://www.nuget.org/packages/Azure.AI.Agents.Persistent/1.1.0) NuGet [1.2.0-beta.7](https://www.nuget.org/packages/Azure.AI.Agents.Persistent/1.2.0-beta.7) | [docs](/dotnet/api/overview/azure/AI.Agents.Persistent-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Agents.Persistent_1.1.0/sdk/ai/Azure.AI.Agents.Persistent/) GitHub [1.2.0-beta.7](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Agents.Persistent_1.2.0-beta.7/sdk/ai/Azure.AI.Agents.Persistent/) |
-| AI Foundry | NuGet [1.1.0](https://www.nuget.org/packages/Azure.AI.Projects/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.AI.Projects/1.2.0-beta.1) | [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/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Projects_1.2.0-beta.1/sdk/ai/Azure.AI.Projects/) |
+| AI Foundry | NuGet [1.1.0](https://www.nuget.org/packages/Azure.AI.Projects/1.1.0) NuGet [1.2.0-beta.2](https://www.nuget.org/packages/Azure.AI.Projects/1.2.0-beta.2) | [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/) GitHub [1.2.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Projects_1.2.0-beta.2/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.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/) |
@@ -84,7 +84,7 @@
| OpenAI Assistants | NuGet [1.0.0-beta.4](https://www.nuget.org/packages/Azure.AI.OpenAI.Assistants/1.0.0-beta.4) | [docs](/dotnet/api/overview/azure/AI.OpenAI.Assistants-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.4](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI.Assistants_1.0.0-beta.4/sdk/openai/Azure.AI.OpenAI.Assistants/) |
| OpenAI Inference | NuGet [2.1.0](https://www.nuget.org/packages/Azure.AI.OpenAI/2.1.0) NuGet [2.5.0-beta.1](https://www.nuget.org/packages/Azure.AI.OpenAI/2.5.0-beta.1) | [docs](/dotnet/api/overview/azure/AI.OpenAI-readme) | GitHub [2.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI_2.1.0/sdk/openai/Azure.AI.OpenAI/) GitHub [2.5.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.OpenAI_2.5.0-beta.1/sdk/openai/Azure.AI.OpenAI/) |
| OpenTelemetry AspNetCore | NuGet [1.3.0](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.AspNetCore/1.3.0) NuGet [1.4.0-beta.1](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.AspNetCore/1.4.0-beta.1) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.AspNetCore-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.AspNetCore_1.3.0/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/) GitHub [1.4.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.AspNetCore_1.4.0-beta.1/sdk/monitor/Azure.Monitor.OpenTelemetry.AspNetCore/) |
-| OpenTelemetry Exporter | NuGet [1.4.0](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Exporter/1.4.0) NuGet [1.5.0-beta.1](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Exporter/1.5.0-beta.1) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.Exporter-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.Exporter_1.4.0/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/) GitHub [1.5.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.Exporter_1.5.0-beta.1/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/) |
+| OpenTelemetry Exporter | NuGet [1.5.0](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.Exporter/1.5.0) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.Exporter-readme) | GitHub [1.5.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.Exporter_1.5.0/sdk/monitor/Azure.Monitor.OpenTelemetry.Exporter/) |
| OpenTelemetry LiveMetrics | NuGet [1.0.0-beta.3](https://www.nuget.org/packages/Azure.Monitor.OpenTelemetry.LiveMetrics/1.0.0-beta.3) | [docs](/dotnet/api/overview/azure/Monitor.OpenTelemetry.LiveMetrics-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.3](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Monitor.OpenTelemetry.LiveMetrics_1.0.0-beta.3/sdk/monitor/Azure.Monitor.OpenTelemetry.LiveMetrics/) |
| Personalizer | NuGet [2.0.0-beta.2](https://www.nuget.org/packages/Azure.AI.Personalizer/2.0.0-beta.2) | [docs](/dotnet/api/overview/azure/AI.Personalizer-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [2.0.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.AI.Personalizer_2.0.0-beta.2/sdk/personalizer/Azure.AI.Personalizer/) |
| 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/) |