NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
NuGet · #35 most downloaded on NuGet
Contains building blocks for clients that call cloud services.
Last release 20 days ago
17 Sep 2026
Ships fairly regularly
a new release about every 6 weeks
Nearly every release is documented
notes for 19 of 19 stable releases
4 versions withdrawn
withdrawn after publishing
127 years old
23 releases · first in 1900
AsyncStreamingResult and AsyncStreamingResult<T> are now generally available and no longer require suppressing the SCME0005 experimental diagnostic.
AsyncStreamingResult and AsyncStreamingResult<T> are now generally available and no longer require suppressing the SCME0005 experimental diagnostic.Last-Event-ID when available.AsyncStreamingClientResult and AsyncStreamingClientResult<T> types to AsyncStreamingResult and AsyncStreamingResult<T>, respectively.Added sealed, one-shot experimental AsyncStreamingClientResult (and the AsyncStreamingClientResult factory class) for asynchronous streaming responses
AsyncStreamingClientResult<T> (and the AsyncStreamingClientResult factory class) for asynchronous streaming responses, with factories for custom producers, server-sent events, and newline-delimited JSON. These types are marked experimental (SCME0005) and are subject to change or removal in future updates.MessageLoggingPolicy logged the entire caller-supplied buffer — including the bytes past the response payload, which for a pooled buffer contain unrelated in-process content — and the configured MessageContentSizeLimit was not applied. Only the bytes that were read are now logged. (#61399)One column per quarter.
Code | Docs Tables Azure.Data.Tables
Code | Docs
Tables
Azure.Data.Tables
FileBinaryContent type for representing a file part within an HTTP request payload, typically as part of a multipart/form-data request.MultiPartFormContent type for building multipart/form-data request payloads.CredentialResolver.TryResolve(IConfigurationSection, Func<IConfigurationSection, AuthenticationTokenProvider?>, out AuthenticationTokenProvider?) virtual overload. The callback lets a chain-owning resolver resolve child sections back through the active engine — preserving caching, normalization, and ordering — without needing to know about credential sources owned by other packages. The default implementation forwards to the existing two-arg overload (experimental SCME0002).Added CredentialSettings.TokenProvider to hold the resolved AuthenticationTokenProvider for the credential.
CredentialSettings.TokenProvider to hold the resolved AuthenticationTokenProvider for the credential.IConfiguration.GetCredential(...) renamed to IConfiguration.GetCredentialSettings(...) and its return type changed from AuthenticationTokenProvider? to CredentialSettings? (experimental SCME0002).ClientSettings.CredentialProvider will be removed in a future release; migrate to settings.Credential.TokenProvider (experimental SCME0002).Added CredentialSettings.this[string key] indexer for reading custom properties from the credential configuration section.
CredentialSettings.this[string key] indexer for reading custom properties from the credential configuration section.AuthenticationPolicy.Create no longer throws when an ApiKey credential section carries a Scope value; Scope is ignored for ApiKey auth.Microsoft.Extensions.Configuration.AzureAppConfiguration
Code | Docs
Support: Active
App Configuration Provider
Microsoft.Extensions.Configuration.AzureAppConfiguration
CredentialResolver abstract class — an extensibility hook that lets credential providers participate in the configuration-driven credential resolution pipeline. Resolvers are invoked in registration order until one produces an AuthenticationTokenProvider for a given configuration section.IConfiguration.GetCredential(...) extension overloads on ConfigurationExtensions that walk a chain of CredentialResolver instances against a named credential section, with optional configureOverrides to mutate the section in-flight.IConfiguration.GetClientSettings<T>(...) extension overloads that bind a ClientSettings-derived type and resolve its Credential via the resolver chain.AddCredentialResolver<T> extension methods on IServiceCollection and IHostApplicationBuilder that register a CredentialResolver once per implementation type (idempotent).AddClient<TClient, TSettings> / AddKeyedClient<TClient, TSettings> paths now auto-resolve credentials from the registered resolver chain, so callers no longer need to wire up provider-specific helpers like WithAzureCredential explicitly when a resolver is registered.AuthenticationTokenProvider instance.IClientBuilder no longer inherits from IHostApplicationBuilder. The internal ClientBuilder implementation now uses composition instead of inheritance. PostConfigure return type changed from IHostApplicationBuilder to IClientBuilder. AddClient and AddKeyedClient continue to return IClientBuilder.Added JsonPatch.EnumerateArray method that iterates over JSON array elements at a specified path, yielding each element as raw UTF-8 bytes.
JsonPatch.EnumerateArray method that iterates over JSON array elements at a specified path, yielding each element as raw UTF-8 bytes.CollectionResult<T>.FromPages and AsyncCollectionResult<T>.FromPages static factory methods that create collection result instances from pre-existing pages of values for testing.IsReadOnly property to ClientPipelineOptions and ClientLoggingOptions so callers can check whether options can still be modified without catching an exception.Clone() method to ClientPipelineOptions and ClientLoggingOptions that creates a new mutable instance from an existing instance that may be read-only.ConfigurationSchema.json to the NuGet package via the MSBuild JsonSchemaSegment feature, enabling automatic JSON IntelliSense and validation for appsettings.json when configuring System.ClientModel-based clients.ClientResult<T> to not throw exceptions on null inputs per Framework Design Guidelines. Null inputs now return default.ClientResult<T> implicit conversion operator parameter to indicate that null is a valid input. This change was made because throwing exceptions from implicit conversions violates the Framework Design Guidelines.Added core support for Microsoft.Extensions.Configuration and Microsoft.Extensions.DependencyInjection.
JsonModel<T> abstract base class that provides a simplified way to implement IJsonModel<T> for JSON serialization and deserialization.ClientRetryPolicy where delays were being calculated using the retry count instead of the attempt count, causing the initial retry to occur without delay and subsequent retries to be performed more quickly than intended.Fixed an issue with JsonPatch.TryGetValue throwing instead of returning false in some cases.
Added ClientRequestId property to PipelineRequest which exposes the value that is used in logging and distributed tracing.
ClientRequestId property to PipelineRequest which exposes the value that is used in logging and distributed tracing.Code | Docs Health Deidentification Azure.Health.Deidentification
Code | Docs
Health Deidentification
Azure.Health.Deidentification
Added ClientConnection constructor, accepting credentials and metadata.
Added JsonPatch which allows for applying JSON Patch operations to JSON documents.
Fix the behavior of Roslyn not properly handling partial classes with attributes in different files
Code | Docs Communication Chat Azure.Communication.Chat
Code | Docs
Communication Chat
Azure.Communication.Chat
UserAgentPolicy pipeline policy to allow adding the user agent to the request headers.System.ClientModel.SourceGeneration package to support ModelReaderWriterBuildableAttribute.Fixed an issue where System.ClientModel.SourceGeneration was running slowly for large projects with many dependencies.
IJsonModel<T>'s that were in the project as well as any types T used in ModelReaderWriter.Read<T> and ModelReaderWriter.Write<T>. Now you must explicitly add a ModelReaderWriterBuildableAttribute with each type that needs to have AOT friendly reading and writing.Code | Docs Communication Rooms Azure.Communication.Rooms
Code | Docs
Communication Rooms
Azure.Communication.Rooms
AuthenticationTokenProvider, GetTokenOptions, AuthenticationToken, AuthenticationPolicy, and BearerTokenPolicy.IJsonModel<T>.Create and IPersistableModel<T>.Create method return types from T to T? to allow returning null when deserialization fails. This change only affects code with nullable reference types enabled.
?.) when calling these methods, or!) if you're certain the result won't be null, orT? instead of T, and decide whether to return null or throw exceptions in error scenariosFirst part of performance improvements for System.ClientModel.SourceGeneration to shorten lengthy builds.
Code | Docs Support: Active
Code | Docs
Support: Active
Code | Docs Support: Active Communication Common Azure.Communication.Common
Code | Docs
Support: Active
Communication Common
Azure.Communication.Common
ActivityExtensions.MarkFailed to ActivityExtensions.MarkClientActivityFailed.int maxSize parameter to ClientCache constructor required and removed default value.IEquatable<object> clientId parameter to object clientId in ClientCache.GetClientConnectionCollection to ClientConnectionCollectionConnectionProvider to ClientConnectionProviderToCollection to ConvertCollectionBuilder in ModelReadWriteTypeBuilderAddKeyValuePair to AddItemWithKey in ModelReadWriteTypeBuilderCode | Docs
Code | Docs
BinaryData.Empty for PipelineResponse.Content when HTTP message has no content (#46669).Upgraded System.Text.Json package dependency to 6.0.10 for security fix (#46134).
System.Text.Json package dependency to 6.0.10 for security fix (#46134).Code | Docs Communication SMS Azure.Communication.Sms
Code | Docs
Communication SMS
Azure.Communication.Sms
System.Memory.Data package dependency to 6.0.0 (#46134).Code | Docs
Code | Docs Azure AI Search Azure.Search.Documents
Code | Docs
Azure AI Search
Azure.Search.Documents
Your coding agent can read these notes before it upgrades. Set up the MCP server →