diff --git a/docfx.json b/docfx.json
index c38e0b0b8ba43..9d5ee8ed87039 100644
--- a/docfx.json
+++ b/docfx.json
@@ -90,7 +90,8 @@
"Compiler Breaking Changes - DotNet 7.md",
"Compiler Breaking Changes - DotNet 8.md",
"Compiler Breaking Changes - DotNet 9.md",
- "Compiler Breaking Changes - DotNet 10.md"
+ "Compiler Breaking Changes - DotNet 10.md",
+ "Deviations from Standard.md"
],
"src": "_roslyn/docs/compilers/CSharp",
"dest": "csharp/whats-new/breaking-changes",
@@ -534,6 +535,7 @@
"_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 8.md": "11/08/2023",
"_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 9.md": "11/09/2024",
"_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 10.md": "01/09/2024",
+ "_roslyn/docs/compilers/CSharp/Deviations from Standard.md": "04/24/2025",
"_vblang/spec/*.md": "07/21/2017"
},
"ms.subservice": {
@@ -715,6 +717,7 @@
"_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 8.md": "C# compiler breaking changes since C# 11",
"_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 9.md": "C# compiler breaking changes since C# 12",
"_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 10.md": "C# compiler breaking changes since C# 13",
+ "_roslyn/docs/compilers/CSharp/Deviations from Standard.md": "Deviations from the C# standard",
"_vblang/spec/introduction.md": "Introduction",
"_vblang/spec/lexical-grammar.md": "Lexical grammar",
"_vblang/spec/preprocessing-directives.md": "Preprocessing directives",
@@ -837,12 +840,13 @@
"_csharplang/proposals/csharp-14.0/user-defined-compound-assignment.md": "This proposal introduces user-defined compound assignment operators. Developers can override compound assignment, increment, and decrement operators.",
"_csharplang/proposals/csharp-14.0/ignored-directives.md": "This proposal allows a source file to include ignored directives. In most cases, ignored directives are used for file-based apps, for example `#!`",
"_csharplang/proposals/csharp-14.0/extension-operators.md": "This proposal extends the proposal for extensions to include *extension operators*, where an operator can be an extension member.",
- "_csharplang/proposals/csharp-14.0/named-and-optional-parameters-in-expression-trees.md": "This proposal allows an expression tree to include named and optional parameters. This enables expression trees to be more flexible in how they are constructed.",
+ "_csharplang/proposals/csharp-14.0/optional-and-named-parameters-in-expression-trees.md": "This proposal allows an expression tree to include named and optional parameters. This enables expression trees to be more flexible in how they are constructed.",
"_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 7.md": "Learn about any breaking changes since the initial release of C# 10 and included in C# 11",
"_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 8.md": "Learn about any breaking changes since the initial release of C# 11 and included in C# 12",
"_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 9.md": "Learn about any breaking changes since the initial release of C# 12 and included in C# 13",
"_roslyn/docs/compilers/CSharp/Compiler Breaking Changes - DotNet 10.md": "Learn about any breaking changes since the initial release of C# 13 and included in C# 14",
- "_vblang/spec/introduction.md": "This chapter provides and introduction to the Visual Basic language.",
+ "_roslyn/docs/compilers/CSharp/Deviations from Standard.md": "Learn about any deviations from the C# standard",
+ "_vblang/spec/introduction.md": "This chapter provides an overview of the Visual Basic language and its design goals.",
"_vblang/spec/lexical-grammar.md": "This chapter defines the lexical grammar for Visual Basic.",
"_vblang/spec/preprocessing-directives.md": "This chapter defines the preprocessing directives allowed in Visual Basic",
"_vblang/spec/general-concepts.md": "This chapter describes the general concepts used in the Visual Basic language.",
@@ -900,7 +904,11 @@
"docs/visual-basic/**/*.md": "Visual Basic"
},
"open_to_public_contributors": {
- "docs/standard/design-guidelines/**.md": false
+ "docs/standard/design-guidelines/**.md": false,
+ "_csharplang/**.md": false,
+ "_csharpstandard/**.md": false,
+ "_roslyn/**.md": false,
+ "_vblang/**.md": false
},
"ms.collection": {
"docs/ai/**/**.{md,yml}": "ce-skilling-ai-copilot"
diff --git a/docs/ai/quickstarts/generate-images.md b/docs/ai/quickstarts/generate-images.md
index 37db9934c3628..0c8c9463d8557 100644
--- a/docs/ai/quickstarts/generate-images.md
+++ b/docs/ai/quickstarts/generate-images.md
@@ -47,6 +47,7 @@ Complete the following steps to create a .NET console app to connect to an AI mo
```bash
dotnet add package Azure.AI.OpenAI
+ dotnet add package Azure.Identity
dotnet add package Microsoft.Extensions.Configuration
dotnet add package Microsoft.Extensions.Configuration.UserSecrets
```
diff --git a/docs/ai/quickstarts/snippets/assistants/AIAssistants.csproj b/docs/ai/quickstarts/snippets/assistants/AIAssistants.csproj
index 02b5d3d4f928d..a109c6f9ee0b9 100644
--- a/docs/ai/quickstarts/snippets/assistants/AIAssistants.csproj
+++ b/docs/ai/quickstarts/snippets/assistants/AIAssistants.csproj
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/ai/quickstarts/snippets/image-generation/azure-openai/ImagesAzureOpenAI.csproj b/docs/ai/quickstarts/snippets/image-generation/azure-openai/ImagesAzureOpenAI.csproj
index 2c6c8c21e319c..e5e6a5a9ca8cb 100644
--- a/docs/ai/quickstarts/snippets/image-generation/azure-openai/ImagesAzureOpenAI.csproj
+++ b/docs/ai/quickstarts/snippets/image-generation/azure-openai/ImagesAzureOpenAI.csproj
@@ -8,10 +8,10 @@
-
+
-
-
+
+
diff --git a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.FunctionalityPipelines/ConsoleAI.FunctionalityPipelines.csproj b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.FunctionalityPipelines/ConsoleAI.FunctionalityPipelines.csproj
index c90a99844cc3f..edcdee672eb5c 100644
--- a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.FunctionalityPipelines/ConsoleAI.FunctionalityPipelines.csproj
+++ b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.FunctionalityPipelines/ConsoleAI.FunctionalityPipelines.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md
index 6ac0d1145c523..29d7b8fc38b2b 100644
--- a/docs/azure/includes/dotnet-all.md
+++ b/docs/azure/includes/dotnet-all.md
@@ -97,7 +97,7 @@
| Schema Registry | NuGet [1.4.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.4.0) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.4.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) |
| Schema Registry - Avro | NuGet [1.0.1](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.1/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) |
| Service Bus | NuGet [7.20.1](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.20.1) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.20.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.20.1/sdk/servicebus/Azure.Messaging.ServiceBus/) |
-| Storage - Blobs | NuGet [12.25.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.25.0) NuGet [12.26.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs/12.26.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.25.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.25.0/sdk/storage/Azure.Storage.Blobs/) GitHub [12.26.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.26.0-beta.1/sdk/storage/Azure.Storage.Blobs/) |
+| Storage - Blobs | NuGet [12.25.1](https://www.nuget.org/packages/Azure.Storage.Blobs/12.25.1) NuGet [12.26.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs/12.26.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.25.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.25.1/sdk/storage/Azure.Storage.Blobs/) GitHub [12.26.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.26.0-beta.1/sdk/storage/Azure.Storage.Blobs/) |
| Storage - Blobs Batch | NuGet [12.22.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.22.0) NuGet [12.23.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.23.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.22.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.22.0/sdk/storage/Azure.Storage.Blobs.Batch/) GitHub [12.23.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.23.0-beta.1/sdk/storage/Azure.Storage.Blobs.Batch/) |
| Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.56](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.56) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [12.0.0-preview.56](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.56/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) |
| Storage - Files Data Lake | NuGet [12.23.0](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.23.0) NuGet [12.24.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.24.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.DataLake-readme) | GitHub [12.23.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.23.0/sdk/storage/Azure.Storage.Files.DataLake/) GitHub [12.24.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.24.0-beta.1/sdk/storage/Azure.Storage.Files.DataLake/) |
@@ -202,7 +202,7 @@
| 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 - 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.11.0](https://www.nuget.org/packages/Azure.ResourceManager.Compute/1.11.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Compute-readme) | GitHub [1.11.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Compute_1.11.0/sdk/compute/Azure.ResourceManager.Compute/) |
+| 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/) |
| Resource Management - Compute Schedule | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.ComputeSchedule/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ComputeSchedule/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ComputeSchedule-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ComputeSchedule_1.1.0/sdk/computeschedule/Azure.ResourceManager.ComputeSchedule/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ComputeSchedule_1.2.0-beta.1/sdk/computeschedule/Azure.ResourceManager.ComputeSchedule/) |
| Resource Management - Confidential Ledger | NuGet [1.0.1](https://www.nuget.org/packages/Azure.ResourceManager.ConfidentialLedger/1.0.1) NuGet [1.1.0-beta.6](https://www.nuget.org/packages/Azure.ResourceManager.ConfidentialLedger/1.1.0-beta.6) | [docs](/dotnet/api/overview/azure/ResourceManager.ConfidentialLedger-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ConfidentialLedger_1.0.1/sdk/confidentialledger/Azure.ResourceManager.ConfidentialLedger/) GitHub [1.1.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ConfidentialLedger_1.1.0-beta.6/sdk/confidentialledger/Azure.ResourceManager.ConfidentialLedger/) |
@@ -227,7 +227,7 @@
| Resource Management - Data Lake Analytics | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.DataLakeAnalytics/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.DataLakeAnalytics-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataLakeAnalytics_1.1.1/sdk/datalake-analytics/Azure.ResourceManager.DataLakeAnalytics/) |
| Resource Management - Data Lake Store | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.DataLakeStore/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.DataLakeStore-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataLakeStore_1.1.1/sdk/datalake-store/Azure.ResourceManager.DataLakeStore/) |
| Resource Management - Data Migration | NuGet [1.0.0-beta.6](https://www.nuget.org/packages/Azure.ResourceManager.DataMigration/1.0.0-beta.6) | [docs](/dotnet/api/overview/azure/ResourceManager.DataMigration-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataMigration_1.0.0-beta.6/sdk/datamigration/Azure.ResourceManager.DataMigration/) |
-| Resource Management - Data Protection | NuGet [1.6.0](https://www.nuget.org/packages/Azure.ResourceManager.DataProtectionBackup/1.6.0) | [docs](/dotnet/api/overview/azure/ResourceManager.DataProtectionBackup-readme) | GitHub [1.6.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataProtectionBackup_1.6.0/sdk/dataprotection/Azure.ResourceManager.DataProtectionBackup/) |
+| Resource Management - Data Protection | NuGet [1.7.0](https://www.nuget.org/packages/Azure.ResourceManager.DataProtectionBackup/1.7.0) | [docs](/dotnet/api/overview/azure/ResourceManager.DataProtectionBackup-readme) | GitHub [1.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataProtectionBackup_1.7.0/sdk/dataprotection/Azure.ResourceManager.DataProtectionBackup/) |
| Resource Management - Data Share | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.DataShare/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.DataShare-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataShare_1.1.1/sdk/datashare/Azure.ResourceManager.DataShare/) |
| Resource Management - Database Fleet Manager | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.DatabaseFleetManager/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.DatabaseFleetManager-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.DatabaseFleetManager_1.0.0-beta.1/sdk/fleet/Azure.ResourceManager.DatabaseFleetManager/) |
| Resource Management - Database Watcher | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.DatabaseWatcher/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.DatabaseWatcher-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.DatabaseWatcher_1.0.0-beta.1/sdk/databasewatcher/Azure.ResourceManager.DatabaseWatcher/) |
@@ -334,7 +334,7 @@
| Resource Management - Purview | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.Purview/1.1.0) NuGet [1.2.0-beta.2](https://www.nuget.org/packages/Azure.ResourceManager.Purview/1.2.0-beta.2) | [docs](/dotnet/api/overview/azure/ResourceManager.Purview-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Purview_1.1.0/sdk/purview/Azure.ResourceManager.Purview/) GitHub [1.2.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Purview_1.2.0-beta.2/sdk/purview/Azure.ResourceManager.Purview/) |
| Resource Management - Quantum | NuGet [1.0.0-beta.6](https://www.nuget.org/packages/Azure.ResourceManager.Quantum/1.0.0-beta.6) | [docs](/dotnet/api/overview/azure/ResourceManager.Quantum-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Quantum_1.0.0-beta.6/sdk/quantum/Azure.ResourceManager.Quantum/) |
| Resource Management - Qumulo | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.Qumulo/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Qumulo-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Qumulo_1.1.1/sdk/qumulo/Azure.ResourceManager.Qumulo/) |
-| Resource Management - Quota | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.Quota/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Quota/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Quota-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Quota_1.1.0/sdk/quota/Azure.ResourceManager.Quota/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Quota_1.2.0-beta.1/sdk/quota/Azure.ResourceManager.Quota/) |
+| Resource Management - Quota | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.Quota/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Quota-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Quota_1.2.0/sdk/quota/Azure.ResourceManager.Quota/) |
| Resource Management - Recovery Services | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.RecoveryServices/1.1.1) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.RecoveryServices/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.RecoveryServices-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.RecoveryServices_1.1.1/sdk/recoveryservices/Azure.ResourceManager.RecoveryServices/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.RecoveryServices_1.2.0-beta.1/sdk/recoveryservices/Azure.ResourceManager.RecoveryServices/) |
| Resource Management - Recovery Services Backup | NuGet [1.3.0](https://www.nuget.org/packages/Azure.ResourceManager.RecoveryServicesBackup/1.3.0) | [docs](/dotnet/api/overview/azure/ResourceManager.RecoveryServicesBackup-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.RecoveryServicesBackup_1.3.0/sdk/recoveryservices-backup/Azure.ResourceManager.RecoveryServicesBackup/) |
| Resource Management - Recovery Services Data Replication | NuGet [1.0.0](https://www.nuget.org/packages/Azure.ResourceManager.RecoveryServicesDataReplication/1.0.0) | [docs](/dotnet/api/overview/azure/ResourceManager.RecoveryServicesDataReplication-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.RecoveryServicesDataReplication_1.0.0/sdk/recoveryservices-datareplication/Azure.ResourceManager.RecoveryServicesDataReplication/) |
@@ -417,13 +417,13 @@
| Speech Extension Telemetry | NuGet [1.46.0](https://www.nuget.org/packages/Microsoft.CognitiveServices.Speech.Extension.Telemetry/1.46.0) | | |
| 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.12.0](https://www.nuget.org/packages/Azure.Iot.Operations.Connector/0.12.0) | | |
-| Unknown Display Name | NuGet [0.8.0](https://www.nuget.org/packages/Azure.Mcp/0.8.0) | | |
-| Unknown Display Name | NuGet [0.8.0](https://www.nuget.org/packages/Azure.Mcp.linux-arm64/0.8.0) | | |
-| Unknown Display Name | NuGet [0.8.0](https://www.nuget.org/packages/Azure.Mcp.linux-x64/0.8.0) | | |
-| Unknown Display Name | NuGet [0.8.0](https://www.nuget.org/packages/Azure.Mcp.osx-arm64/0.8.0) | | |
-| Unknown Display Name | NuGet [0.8.0](https://www.nuget.org/packages/Azure.Mcp.osx-x64/0.8.0) | | |
-| Unknown Display Name | NuGet [0.8.0](https://www.nuget.org/packages/Azure.Mcp.win-arm64/0.8.0) | | |
-| Unknown Display Name | NuGet [0.8.0](https://www.nuget.org/packages/Azure.Mcp.win-x64/0.8.0) | | |
+| Unknown Display Name | NuGet [0.8.1](https://www.nuget.org/packages/Azure.Mcp/0.8.1) | | |
+| Unknown Display Name | NuGet [0.8.1](https://www.nuget.org/packages/Azure.Mcp.linux-arm64/0.8.1) | | |
+| Unknown Display Name | NuGet [0.8.1](https://www.nuget.org/packages/Azure.Mcp.linux-x64/0.8.1) | | |
+| Unknown Display Name | NuGet [0.8.1](https://www.nuget.org/packages/Azure.Mcp.osx-arm64/0.8.1) | | |
+| Unknown Display Name | NuGet [0.8.1](https://www.nuget.org/packages/Azure.Mcp.osx-x64/0.8.1) | | |
+| Unknown Display Name | NuGet [0.8.1](https://www.nuget.org/packages/Azure.Mcp.win-arm64/0.8.1) | | |
+| Unknown Display Name | NuGet [0.8.1](https://www.nuget.org/packages/Azure.Mcp.win-x64/0.8.1) | | |
| Unknown Display Name | NuGet [0.1.2-preview.2](https://www.nuget.org/packages/Microsoft.Azure.Cosmos.Aot/0.1.2-preview.2) | | |
| Unknown Display Name | NuGet [0.2.802](https://www.nuget.org/packages/Microsoft.Azure.Mcp.AzTypes.Internal.Compact/0.2.802) | | |
| Unknown Display Name | NuGet [1.1.2-preview](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.AzureCosmosDb.Mongo/1.1.2-preview) | | |
diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md
index d6e67934f364b..8729b2a6f8b12 100644
--- a/docs/azure/includes/dotnet-new.md
+++ b/docs/azure/includes/dotnet-new.md
@@ -104,7 +104,7 @@
| Schema Registry | NuGet [1.4.0](https://www.nuget.org/packages/Azure.Data.SchemaRegistry/1.4.0) | [docs](/dotnet/api/overview/azure/Data.SchemaRegistry-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Data.SchemaRegistry_1.4.0/sdk/schemaregistry/Azure.Data.SchemaRegistry/) |
| Schema Registry - Avro | NuGet [1.0.1](https://www.nuget.org/packages/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/1.0.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro_1.0.1/sdk/schemaregistry/Microsoft.Azure.Data.SchemaRegistry.ApacheAvro/) |
| Service Bus | NuGet [7.20.1](https://www.nuget.org/packages/Azure.Messaging.ServiceBus/7.20.1) | [docs](/dotnet/api/overview/azure/Messaging.ServiceBus-readme) | GitHub [7.20.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Messaging.ServiceBus_7.20.1/sdk/servicebus/Azure.Messaging.ServiceBus/) |
-| Storage - Blobs | NuGet [12.25.0](https://www.nuget.org/packages/Azure.Storage.Blobs/12.25.0) NuGet [12.26.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs/12.26.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.25.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.25.0/sdk/storage/Azure.Storage.Blobs/) GitHub [12.26.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.26.0-beta.1/sdk/storage/Azure.Storage.Blobs/) |
+| Storage - Blobs | NuGet [12.25.1](https://www.nuget.org/packages/Azure.Storage.Blobs/12.25.1) NuGet [12.26.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs/12.26.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs-readme) | GitHub [12.25.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.25.1/sdk/storage/Azure.Storage.Blobs/) GitHub [12.26.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs_12.26.0-beta.1/sdk/storage/Azure.Storage.Blobs/) |
| Storage - Blobs Batch | NuGet [12.22.0](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.22.0) NuGet [12.23.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Blobs.Batch/12.23.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Blobs.Batch-readme) | GitHub [12.22.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.22.0/sdk/storage/Azure.Storage.Blobs.Batch/) GitHub [12.23.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.Batch_12.23.0-beta.1/sdk/storage/Azure.Storage.Blobs.Batch/) |
| Storage - Blobs ChangeFeed | NuGet [12.0.0-preview.56](https://www.nuget.org/packages/Azure.Storage.Blobs.ChangeFeed/12.0.0-preview.56) | [docs](/dotnet/api/overview/azure/Storage.Blobs.ChangeFeed-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [12.0.0-preview.56](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Blobs.ChangeFeed_12.0.0-preview.56/sdk/storage/Azure.Storage.Blobs.ChangeFeed/) |
| Storage - Files Data Lake | NuGet [12.23.0](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.23.0) NuGet [12.24.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Files.DataLake/12.24.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Files.DataLake-readme) | GitHub [12.23.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.23.0/sdk/storage/Azure.Storage.Files.DataLake/) GitHub [12.24.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Files.DataLake_12.24.0-beta.1/sdk/storage/Azure.Storage.Files.DataLake/) |
@@ -212,7 +212,7 @@
| 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 - 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.11.0](https://www.nuget.org/packages/Azure.ResourceManager.Compute/1.11.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Compute-readme) | GitHub [1.11.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Compute_1.11.0/sdk/compute/Azure.ResourceManager.Compute/) |
+| 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/) |
| Resource Management - Compute Schedule | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.ComputeSchedule/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.ComputeSchedule/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.ComputeSchedule-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ComputeSchedule_1.1.0/sdk/computeschedule/Azure.ResourceManager.ComputeSchedule/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ComputeSchedule_1.2.0-beta.1/sdk/computeschedule/Azure.ResourceManager.ComputeSchedule/) |
| Resource Management - Confidential Ledger | NuGet [1.0.1](https://www.nuget.org/packages/Azure.ResourceManager.ConfidentialLedger/1.0.1) NuGet [1.1.0-beta.6](https://www.nuget.org/packages/Azure.ResourceManager.ConfidentialLedger/1.1.0-beta.6) | [docs](/dotnet/api/overview/azure/ResourceManager.ConfidentialLedger-readme) | GitHub [1.0.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ConfidentialLedger_1.0.1/sdk/confidentialledger/Azure.ResourceManager.ConfidentialLedger/) GitHub [1.1.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.ConfidentialLedger_1.1.0-beta.6/sdk/confidentialledger/Azure.ResourceManager.ConfidentialLedger/) |
@@ -237,7 +237,7 @@
| Resource Management - Data Lake Analytics | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.DataLakeAnalytics/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.DataLakeAnalytics-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataLakeAnalytics_1.1.1/sdk/datalake-analytics/Azure.ResourceManager.DataLakeAnalytics/) |
| Resource Management - Data Lake Store | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.DataLakeStore/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.DataLakeStore-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataLakeStore_1.1.1/sdk/datalake-store/Azure.ResourceManager.DataLakeStore/) |
| Resource Management - Data Migration | NuGet [1.0.0-beta.6](https://www.nuget.org/packages/Azure.ResourceManager.DataMigration/1.0.0-beta.6) | [docs](/dotnet/api/overview/azure/ResourceManager.DataMigration-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataMigration_1.0.0-beta.6/sdk/datamigration/Azure.ResourceManager.DataMigration/) |
-| Resource Management - Data Protection | NuGet [1.6.0](https://www.nuget.org/packages/Azure.ResourceManager.DataProtectionBackup/1.6.0) | [docs](/dotnet/api/overview/azure/ResourceManager.DataProtectionBackup-readme) | GitHub [1.6.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataProtectionBackup_1.6.0/sdk/dataprotection/Azure.ResourceManager.DataProtectionBackup/) |
+| Resource Management - Data Protection | NuGet [1.7.0](https://www.nuget.org/packages/Azure.ResourceManager.DataProtectionBackup/1.7.0) | [docs](/dotnet/api/overview/azure/ResourceManager.DataProtectionBackup-readme) | GitHub [1.7.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataProtectionBackup_1.7.0/sdk/dataprotection/Azure.ResourceManager.DataProtectionBackup/) |
| Resource Management - Data Share | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.DataShare/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.DataShare-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.DataShare_1.1.1/sdk/datashare/Azure.ResourceManager.DataShare/) |
| Resource Management - Database Fleet Manager | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.DatabaseFleetManager/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.DatabaseFleetManager-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.DatabaseFleetManager_1.0.0-beta.1/sdk/fleet/Azure.ResourceManager.DatabaseFleetManager/) |
| Resource Management - Database Watcher | NuGet [1.0.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.DatabaseWatcher/1.0.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.DatabaseWatcher-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.DatabaseWatcher_1.0.0-beta.1/sdk/databasewatcher/Azure.ResourceManager.DatabaseWatcher/) |
@@ -348,7 +348,7 @@
| Resource Management - Purview | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.Purview/1.1.0) NuGet [1.2.0-beta.2](https://www.nuget.org/packages/Azure.ResourceManager.Purview/1.2.0-beta.2) | [docs](/dotnet/api/overview/azure/ResourceManager.Purview-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Purview_1.1.0/sdk/purview/Azure.ResourceManager.Purview/) GitHub [1.2.0-beta.2](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Purview_1.2.0-beta.2/sdk/purview/Azure.ResourceManager.Purview/) |
| Resource Management - Quantum | NuGet [1.0.0-beta.6](https://www.nuget.org/packages/Azure.ResourceManager.Quantum/1.0.0-beta.6) | [docs](/dotnet/api/overview/azure/ResourceManager.Quantum-readme?view=azure-dotnet-preview&preserve-view=true) | GitHub [1.0.0-beta.6](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Quantum_1.0.0-beta.6/sdk/quantum/Azure.ResourceManager.Quantum/) |
| Resource Management - Qumulo | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.Qumulo/1.1.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Qumulo-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Qumulo_1.1.1/sdk/qumulo/Azure.ResourceManager.Qumulo/) |
-| Resource Management - Quota | NuGet [1.1.0](https://www.nuget.org/packages/Azure.ResourceManager.Quota/1.1.0) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.Quota/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.Quota-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Quota_1.1.0/sdk/quota/Azure.ResourceManager.Quota/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Quota_1.2.0-beta.1/sdk/quota/Azure.ResourceManager.Quota/) |
+| Resource Management - Quota | NuGet [1.2.0](https://www.nuget.org/packages/Azure.ResourceManager.Quota/1.2.0) | [docs](/dotnet/api/overview/azure/ResourceManager.Quota-readme) | GitHub [1.2.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.Quota_1.2.0/sdk/quota/Azure.ResourceManager.Quota/) |
| Resource Management - Recovery Services | NuGet [1.1.1](https://www.nuget.org/packages/Azure.ResourceManager.RecoveryServices/1.1.1) NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Azure.ResourceManager.RecoveryServices/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/ResourceManager.RecoveryServices-readme) | GitHub [1.1.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.RecoveryServices_1.1.1/sdk/recoveryservices/Azure.ResourceManager.RecoveryServices/) GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.RecoveryServices_1.2.0-beta.1/sdk/recoveryservices/Azure.ResourceManager.RecoveryServices/) |
| Resource Management - Recovery Services Backup | NuGet [1.3.0](https://www.nuget.org/packages/Azure.ResourceManager.RecoveryServicesBackup/1.3.0) | [docs](/dotnet/api/overview/azure/ResourceManager.RecoveryServicesBackup-readme) | GitHub [1.3.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.RecoveryServicesBackup_1.3.0/sdk/recoveryservices-backup/Azure.ResourceManager.RecoveryServicesBackup/) |
| Resource Management - Recovery Services Data Replication | NuGet [1.0.0](https://www.nuget.org/packages/Azure.ResourceManager.RecoveryServicesDataReplication/1.0.0) | [docs](/dotnet/api/overview/azure/ResourceManager.RecoveryServicesDataReplication-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.ResourceManager.RecoveryServicesDataReplication_1.0.0/sdk/recoveryservices-datareplication/Azure.ResourceManager.RecoveryServicesDataReplication/) |
diff --git a/docs/azure/sdk/authentication/index.md b/docs/azure/sdk/authentication/index.md
index 62ef20f31a4b7..c447ef961bd91 100644
--- a/docs/azure/sdk/authentication/index.md
+++ b/docs/azure/sdk/authentication/index.md
@@ -32,13 +32,13 @@ Use of connection strings should be limited to scenarios where token-based authe
The specific type of token-based authentication an app should use to authenticate to Azure resources depends on where the app runs. The following diagram provides guidance for different scenarios and environments:
-:::image type="content" source="../media/dotnet-sdk-auth-strategy.png" alt-text="A diagram showing the recommended token-based authentication strategies for an app depending on where it's running." :::
+:::image type="content" source="../media/mermaidjs/authentication-environments.svg" alt-text="A diagram showing the recommended token-based authentication strategies for an app depending on where it's running." :::
When an app is:
- **Hosted on Azure**: The app should authenticate to Azure resources using a managed identity. This option is discussed in more detail at [authentication in server environments](#authentication-for-azure-hosted-apps).
-- **Running locally during development**: The app can authenticate to Azure using either an application service principal for local development or by using the developer's Azure credentials. Each option is discussed in more detail at [authentication during local development](#authentication-during-local-development).
-- **Hosted on-premises**: The app should authenticate to Azure resources using an application service principal, or a managed identity in the case of Azure Arc. On-premises workflows are discussed in more detail at [authentication in server environments](#authentication-for-apps-hosted-on-premises).
+- **Running locally during development**: The app can authenticate to Azure using a [developer account](local-development-dev-accounts.md), a [broker](local-development-broker.md), or a [service principal](local-development-service-principal.md). Each option is discussed in more detail at [authentication during local development](#authentication-during-local-development).
+- **Hosted on-premises**: The app should authenticate to Azure resources using an application service principal, or a managed identity in the case of Azure Arc. On-premises workflows are discussed in more detail at [Authentication for apps hosted on-premises](#authentication-for-apps-hosted-on-premises).
## Authentication for Azure-hosted apps
@@ -69,6 +69,13 @@ You can use your own Azure credentials to authenticate to Azure resources during
> [!div class="nextstepaction"]
> [Authenticate locally using developer credentials](local-development-dev-accounts.md)
+#### Use a broker
+
+Brokered authentication collects user credentials using the system authentication broker to authenticate an app. A system authentication broker runs on a user's machine and manages the authentication handshakes and token maintenance for all connected accounts.
+
+> [!div class="nextstepaction"]
+> [Authenticate locally using a broker](local-development-broker.md)
+
#### Use a service principal
A service principal is created in a Microsoft Entra tenant to represent an app and be used to authenticate to Azure resources. You can configure your app to use service principal credentials during local development. This method is more secure than using developer credentials and is closer to how your app will authenticate in production. However, it's still less ideal than using a managed identity due to the need for secrets.
diff --git a/docs/azure/sdk/authentication/local-development-dev-accounts.md b/docs/azure/sdk/authentication/local-development-dev-accounts.md
index 4c32dcaae1c7f..b6504fcb876a2 100644
--- a/docs/azure/sdk/authentication/local-development-dev-accounts.md
+++ b/docs/azure/sdk/authentication/local-development-dev-accounts.md
@@ -12,14 +12,20 @@ ms.custom:
# Authenticate .NET apps to Azure services during local development using developer accounts
-During local development, applications need to authenticate to Azure to access various Azure services. Two common approaches for local authentication are to [use a service principal](local-development-service-principal.md) or to use a developer account. This article explains how to use a developer account. In the sections ahead, you learn:
+During local development, applications need to authenticate to Azure to use different Azure services. Authenticate locally using one of these approaches:
-- How to use Microsoft Entra groups to efficiently manage permissions for multiple developer accounts
-- How to assign roles to developer accounts to scope permissions
-- How to sign-in to supported local development tools
-- How to authenticate using a developer account from your app code
+- Use a developer account with one of the [developer tools supported by the Azure Identity library](#supported-developer-tools-for-authentication).
+- Use a [broker](local-development-broker.md) to manage credentials.
+- Use a [service principal](local-development-service-principal.md).
-:::image type="content" source="../media/local-dev-dev-accounts-overview.png" alt-text="A diagram showing an app running in local development using a developer tool identity to connect to Azure resources.":::
+This article explains how to authenticate using a developer account with tools supported by the Azure Identity library. In the sections ahead, you learn:
+
+- How to use Microsoft Entra groups to efficiently manage permissions for multiple developer accounts.
+- How to assign roles to developer accounts to scope permissions.
+- How to sign-in to supported local development tools.
+- How to authenticate using a developer account from your app code.
+
+## Supported developer tools for authentication
For an app to authenticate to Azure during local development using the developer's Azure credentials, the developer must be signed-in to Azure from one of the following developer tools:
@@ -27,6 +33,7 @@ For an app to authenticate to Azure during local development using the developer
- Azure Developer CLI
- Azure PowerShell
- Visual Studio
+- Visual Studio Code
The Azure Identity library can detect that the developer is signed-in from one of these tools. The library can then obtain the Microsoft Entra access token via the tool to authenticate the app to Azure as the signed-in user.
@@ -44,9 +51,30 @@ Next, sign-in to Azure using one of several developer tools that can be used to
[!INCLUDE [auth-visual-studio](../includes/auth-visual-studio.md)]
+### [Visual Studio Code](#tab/sign-in-visual-studio-code)
+
+Developers using Visual Studio Code can authenticate with their developer account directly through the editor via the broker. Apps that use or can then use this account to authenticate app requests through a seamless single-sign-on experience.
+
+1. In Visual Studio Code, go to the **Extensions** panel and install the [Azure Resources](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-azureresourcegroups) extension. This extension lets you view and manage Azure resources directly from Visual Studio Code. It also uses the built-in Visual Studio Code Microsoft authentication provider to authenticate with Azure.
+
+ :::image type="content" source="../media/azure-resources-extension.png" alt-text="Screenshot showing the Azure Resources extension.":::
+
+1. Open the Command Palette in Visual Studio Code, then search for and select **Azure: Sign in**.
+
+ :::image type="content" source="../media/visual-studio-code-sign-in.png" alt-text="Screenshot showing how to sign in to Azure in Visual Studio Code.":::
+
+ > [!TIP]
+ > Open the Command Palette using `Ctrl+Shift+P` on Windows/Linux or `Cmd+Shift+P` on macOS.
+
+1. Add the [Azure.Identity.Broker](https://www.nuget.org/packages/Azure.Identity.Broker) NuGet package to your app:
+
+ ```dotnetcli
+ dotnet add package Azure.Identity.Broker
+ ```
+
### [Azure CLI](#tab/sign-in-azure-cli)
-Developers coding outside of an IDE can also use the [Azure CLI](/cli/azure/what-is-azure-cli) to authenticate. Apps using `DefaultAzureCredential` or can then use this account to authenticate app requests when running locally.
+Developers can use [Azure CLI](/cli/azure/what-is-azure-cli) to authenticate. Apps using or can then use this account to authenticate app requests.
To authenticate with the Azure CLI, run the `az login` command. On a system with a default web browser, the Azure CLI launches the browser to authenticate the user.
@@ -62,7 +90,7 @@ az login --use-device-code
### [Azure Developer CLI](#tab/sign-in-azure-developer-cli)
-Developers coding outside of an IDE can also use the [Azure Developer CLI](/azure/developer/azure-developer-cli/overview) to authenticate. Apps using `DefaultAzureCredential` or can then use this account to authenticate app requests when running locally.
+Developers can use [Azure Developer CLI](/azure/developer/azure-developer-cli/overview) to authenticate. Apps using or can then use this account to authenticate app requests.
To authenticate with the Azure Developer CLI, run the `azd auth login` command. On a system with a default web browser, the Azure Developer CLI launches the browser to authenticate the user.
@@ -70,7 +98,7 @@ To authenticate with the Azure Developer CLI, run the `azd auth login` command.
azd auth login
```
-For systems without a default web browser, the `azd auth login --use-device-code` uses the device code authentication flow. The user can also force the the Azure Developer CLI to use the device code flow rather than launching a browser by specifying the `--use-device-code` argument.
+For systems without a default web browser, the `azd auth login --use-device-code` uses the device code authentication flow. The user can also force the Azure Developer CLI to use the device code flow rather than launching a browser by specifying the `--use-device-code` argument.
```azdeveloper
azd auth login --use-device-code
@@ -78,7 +106,7 @@ azd auth login --use-device-code
### [Azure PowerShell](#tab/sign-in-azure-powershell)
-Developers coding outside of an IDE can also use [Azure PowerShell](/powershell/azure/what-is-azure-powershell) to authenticate. Apps using `DefaultAzureCredential` or can then use this account to authenticate app requests when running locally.
+Developers can use [Azure PowerShell](/powershell/azure/what-is-azure-powershell) to authenticate. Apps using or can then use this account to authenticate app requests.
To authenticate with Azure PowerShell, run the command `Connect-AzAccount`. On a system with a default web browser and version 5.0.0 or later of Azure PowerShell, it launches the browser to authenticate the user.
diff --git a/docs/azure/sdk/authentication/local-development-service-principal.md b/docs/azure/sdk/authentication/local-development-service-principal.md
index ad2d72f367964..ba7aca1f8440b 100644
--- a/docs/azure/sdk/authentication/local-development-service-principal.md
+++ b/docs/azure/sdk/authentication/local-development-service-principal.md
@@ -21,7 +21,7 @@ During local development, applications need to authenticate to Azure to access v
Using dedicated application service principals allows you to adhere to the principle of least privilege when accessing Azure resources. Permissions are limited to the specific requirements of the app during development, preventing accidental access to Azure resources intended for other apps or services. This approach also helps avoid issues when the app is moved to production by ensuring it isn't over-privileged in the development environment.
-:::image type="content" source="../media/local-dev-service-principal-overview.png" alt-text="A diagram showing how a local .NET app uses the developer's credentials to connect to Azure by using locally installed development tools.":::
+:::image type="content" source="../media/mermaidjs/local-service-principal-authentication.svg" alt-text="A diagram showing how a local .NET app uses a service principal to connect to Azure resources.":::
When the app is registered in Azure, an application service principal is created. For local development:
diff --git a/docs/azure/sdk/media/azure-resources-extension.png b/docs/azure/sdk/media/azure-resources-extension.png
new file mode 100644
index 0000000000000..e1f5e93d5654d
Binary files /dev/null and b/docs/azure/sdk/media/azure-resources-extension.png differ
diff --git a/docs/azure/sdk/media/broker-macos-account-picker.png b/docs/azure/sdk/media/broker-macos-account-picker.png
index 9f5bc85fefa42..4cf2af2e971ce 100644
Binary files a/docs/azure/sdk/media/broker-macos-account-picker.png and b/docs/azure/sdk/media/broker-macos-account-picker.png differ
diff --git a/docs/azure/sdk/media/dotnet-sdk-auth-strategy.png b/docs/azure/sdk/media/dotnet-sdk-auth-strategy.png
deleted file mode 100644
index 6ac249515441d..0000000000000
Binary files a/docs/azure/sdk/media/dotnet-sdk-auth-strategy.png and /dev/null differ
diff --git a/docs/azure/sdk/media/local-dev-dev-accounts-overview.png b/docs/azure/sdk/media/local-dev-dev-accounts-overview.png
deleted file mode 100644
index 7fa06e7407b4c..0000000000000
Binary files a/docs/azure/sdk/media/local-dev-dev-accounts-overview.png and /dev/null differ
diff --git a/docs/azure/sdk/media/mermaidjs/authentication-environments.md b/docs/azure/sdk/media/mermaidjs/authentication-environments.md
new file mode 100644
index 0000000000000..f5584204408fd
--- /dev/null
+++ b/docs/azure/sdk/media/mermaidjs/authentication-environments.md
@@ -0,0 +1,48 @@
+---
+ms.topic: include
+ms.date: 08/07/2024
+---
+
+```mermaid
+%% STEPS TO GENERATE IMAGE
+%% =======================
+%% 1. Install mermaid CLI v10.9.1 (see https://github.com/mermaid-js/mermaid-cli/blob/master/README.md):
+%% npm i -g @mermaid-js/mermaid-cli@10.9.1
+%% 2. Run command: mmdc -i authentication-environments.md -o ../../media/mermaidjs/authentication-environments.svg
+
+%%{init: {'theme':'base', 'themeVariables': { 'primaryColor': '#fff', 'edgeLabelBackground':'#fff', 'fontSize': '24px'}}}%%
+flowchart LR
+ NetApp[".NET app"]
+ Q1{Where is the app running?}
+
+ NetApp --> Q1
+
+ %% Local Development Machine Branch
+ Q1 --> LocalDev[Development machine]
+ LocalDev --> AppSP["**Service principal**"]
+ LocalDev --> UserPrincipal["**User principal**"]
+
+ %% Azure Branch
+ Q1 --> AzureApp[Azure]
+ AzureApp --> ManagedId["**Managed identity**"]
+
+
+ %% On-premises Server Branch
+ Q1 --> OnPremApp[On-premises server]
+ OnPremApp --> ServicePrincipal["**Service principal**"]
+ OnPremApp --> ArcManagedId["**Managed identity (Azure Arc only)**"]
+
+ %% Styling
+ classDef questionBox fill:#4472C4,stroke:#333,stroke-width:2px,color:#fff,font-size:24px
+ classDef authMethod fill:#e6f2ff,stroke:#4472C4,stroke-width:2px,color:#000,font-size:24px
+ classDef envNode fill:#8fbc8f,stroke:#333,stroke-width:2px,color:#000,font-size:24px
+ classDef startNode fill:#2d5f3f,stroke:#333,stroke-width:2px,color:#fff,font-size:24px
+
+ %% Edge label styling
+ linkStyle default font-size:24px
+
+ class NetApp startNode
+ class Q1 questionBox
+ class AppSP,UserPrincipal,ManagedId,ServicePrincipal,ArcManagedId authMethod
+ class LocalDev,AzureApp,OnPremApp envNode
+```
diff --git a/docs/azure/sdk/media/mermaidjs/authentication-environments.svg b/docs/azure/sdk/media/mermaidjs/authentication-environments.svg
new file mode 100644
index 0000000000000..de2202d029f74
--- /dev/null
+++ b/docs/azure/sdk/media/mermaidjs/authentication-environments.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/azure/sdk/media/mermaidjs/local-service-principal-authentication.md b/docs/azure/sdk/media/mermaidjs/local-service-principal-authentication.md
new file mode 100644
index 0000000000000..18c470a0e76d8
--- /dev/null
+++ b/docs/azure/sdk/media/mermaidjs/local-service-principal-authentication.md
@@ -0,0 +1,28 @@
+---
+ms.topic: include
+ms.date: 08/07/2024
+---
+
+```mermaid
+%% STEPS TO GENERATE IMAGE
+%% =======================
+%% 1. Install mermaid CLI v10.9.1 (see https://github.com/mermaid-js/mermaid-cli/blob/master/README.md):
+%% npm i -g @mermaid-js/mermaid-cli@10.9.1
+%% 2. Run command: mmdc -i local-service-principal-authentication.md -o ../../media/mermaidjs/local-service-principal-authentication.svg
+
+flowchart LR
+ APP["Local .NET app"]
+ SP["App service principal stored in environment variables"]
+ AS["Azure services"]
+
+ APP --> SP
+ SP --> AS
+
+ classDef app fill:#e6f3ff,stroke:#0078d4,stroke-width:2px,color:#000,font-size:16px
+ classDef serviceP fill:#D4F4D4,stroke:#7BC97B,stroke-width:2px,color:#000,font-size:16px
+ classDef services fill:#0078d4,stroke:#005ba1,stroke-width:2px,color:#fff,font-size:16px
+
+ class APP app
+ class SP serviceP
+ class AS services
+```
diff --git a/docs/azure/sdk/media/mermaidjs/local-service-principal-authentication.svg b/docs/azure/sdk/media/mermaidjs/local-service-principal-authentication.svg
new file mode 100644
index 0000000000000..5cb39256f01c2
--- /dev/null
+++ b/docs/azure/sdk/media/mermaidjs/local-service-principal-authentication.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/docs/azure/sdk/media/visual-studio-code-sign-in.png b/docs/azure/sdk/media/visual-studio-code-sign-in.png
new file mode 100644
index 0000000000000..e4a54866c2208
Binary files /dev/null and b/docs/azure/sdk/media/visual-studio-code-sign-in.png differ
diff --git a/docs/azure/sdk/snippets/authentication/Directory.Packages.props b/docs/azure/sdk/snippets/authentication/Directory.Packages.props
index f088022dc4999..fc92d6bb16d42 100644
--- a/docs/azure/sdk/snippets/authentication/Directory.Packages.props
+++ b/docs/azure/sdk/snippets/authentication/Directory.Packages.props
@@ -7,7 +7,7 @@
-
+
diff --git a/docs/azure/sdk/snippets/configure-proxy/ProxyServerConfiguration.csproj b/docs/azure/sdk/snippets/configure-proxy/ProxyServerConfiguration.csproj
index 94e523af611b3..3b72b4c9b38b5 100644
--- a/docs/azure/sdk/snippets/configure-proxy/ProxyServerConfiguration.csproj
+++ b/docs/azure/sdk/snippets/configure-proxy/ProxyServerConfiguration.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/docs/azure/sdk/snippets/logging/LoggingSampleApp.csproj b/docs/azure/sdk/snippets/logging/LoggingSampleApp.csproj
index a46c310e7d99a..25fb7e1808105 100644
--- a/docs/azure/sdk/snippets/logging/LoggingSampleApp.csproj
+++ b/docs/azure/sdk/snippets/logging/LoggingSampleApp.csproj
@@ -9,8 +9,8 @@
-
-
+
+
diff --git a/docs/azure/sdk/snippets/pagination/pagination.csproj b/docs/azure/sdk/snippets/pagination/pagination.csproj
index 3dc674c485820..e376e32d2ee47 100644
--- a/docs/azure/sdk/snippets/pagination/pagination.csproj
+++ b/docs/azure/sdk/snippets/pagination/pagination.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj b/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj
index 1b7b580b2fd3c..7e8549ab79d08 100644
--- a/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj
+++ b/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj
@@ -10,7 +10,7 @@
-
+
diff --git a/docs/core/extensions/snippets/primitives/string/tokenizers.csproj b/docs/core/extensions/snippets/primitives/string/tokenizers.csproj
index b8033eda08d9b..56959848bf277 100644
--- a/docs/core/extensions/snippets/primitives/string/tokenizers.csproj
+++ b/docs/core/extensions/snippets/primitives/string/tokenizers.csproj
@@ -9,7 +9,7 @@
-
+
diff --git a/docs/csharp/language-reference/preprocessor-directives.md b/docs/csharp/language-reference/preprocessor-directives.md
index 930ab1fadc953..d93158c7ce056 100644
--- a/docs/csharp/language-reference/preprocessor-directives.md
+++ b/docs/csharp/language-reference/preprocessor-directives.md
@@ -1,7 +1,7 @@
---
description: "Learn the different C# preprocessor directives that control conditional compilation, warnings, nullable analysis, and more"
title: "Preprocessor directives"
-ms.date: 06/19/2025
+ms.date: 09/24/2025
f1_keywords:
- "cs.preprocessor"
- "#nullable"
@@ -109,6 +109,20 @@ The `#:` directives that are used in file-based apps include:
```xml
```
+
+- `#:project`:
+
+ Instances of `#:project` are translated into `ProjectReference` elements to include the project with the specified path to the project. For example:
+
+ ```csharp
+ #:project ../Path/To.Example.csproj
+ ```
+
+ The preceding preprocessor token is translated into:
+
+ ```xml
+
+ ```
Tools can add new tokens following the `#:` convention.
diff --git a/docs/csharp/programming-guide/classes-and-structs/how-to-initialize-a-dictionary-with-a-collection-initializer.md b/docs/csharp/programming-guide/classes-and-structs/how-to-initialize-a-dictionary-with-a-collection-initializer.md
index 5ea9e525947d6..5c3964c36d593 100644
--- a/docs/csharp/programming-guide/classes-and-structs/how-to-initialize-a-dictionary-with-a-collection-initializer.md
+++ b/docs/csharp/programming-guide/classes-and-structs/how-to-initialize-a-dictionary-with-a-collection-initializer.md
@@ -5,7 +5,6 @@ ms.date: 02/12/2025
helpviewer_keywords:
- "collection initializers [C#], with Dictionary"
ms.topic: how-to
-ms.custom: copilot-scenario-highlight
ms.assetid: 25283922-f8ee-40dc-a639-fac30804ec71
---
# How to initialize a dictionary with a collection initializer (C# Programming Guide)
@@ -23,9 +22,6 @@ A contains a collection of key/
> method throws : `'An item with the same key has already been added. Key: 111'`,
> while the second part of example, the public read / write indexer method, quietly overwrites the already existing entry with the same key.
-> [!TIP]
-> You can use AI assistance to [initialize a dictionary](#use-ai-to-initialize-a-dictionary).
-
## Example
In the following code example, a is initialized with instances of type `StudentName`. The first initialization uses the `Add` method with two arguments. The compiler generates a call to `Add` for each of the pairs of `int` keys and `StudentName` values. The second uses a public read / write indexer method of the `Dictionary` class:
@@ -34,20 +30,6 @@ In the following code example, a . Finally, the whole collection initializer for the dictionary is enclosed in braces. In the second initialization, the left side of the assignment is the key and the right side is the value, using an object initializer for `StudentName`.
-## Use AI to initialize a dictionary
-
-You can use AI tools, such as GitHub Copilot, to generate C# code to initialize a dictionary with a collection initializer. You can customize the prompt to add specifics per your requirements.
-
-The following text shows an example prompt for Copilot Chat:
-
-```copilot-prompt
-Generate C# code to initialize Dictionary using key-value pairs within the collection initializer. The employee class is a record class with two properties: Name and Age.
-```
-
-GitHub Copilot is powered by AI, so surprises and mistakes are possible. For more information, see [Copilot FAQs](https://aka.ms/copilot-general-use-faqs).
-
## See also
- [Object and Collection Initializers](./object-and-collection-initializers.md)
-- [GitHub Copilot in Visual Studio](/visualstudio/ide/visual-studio-github-copilot-install-and-states)
-- [GitHub Copilot in VS Code](https://code.visualstudio.com/docs/copilot/overview)
diff --git a/docs/csharp/specification/toc.yml b/docs/csharp/specification/toc.yml
index 3de2c6bf0a33f..662b4a23038f5 100644
--- a/docs/csharp/specification/toc.yml
+++ b/docs/csharp/specification/toc.yml
@@ -247,6 +247,8 @@ items:
href: ../../../_csharplang/proposals/csharp-11.0/generic-attributes.md
- name: Experimental attribute
href: ../../../_csharplang/proposals/csharp-12.0/experimental-attribute.md
+- name: Deviations from the C# standard
+ href: ../../../_roslyn/docs/compilers/CSharp/Deviations from Standard.md
- name: Other C# documentation
items:
- name: C# conceptual docs
diff --git a/docs/fsharp/using-fsharp-on-azure/blob-storage.md b/docs/fsharp/using-fsharp-on-azure/blob-storage.md
index e21dd99338eb2..c5e34b64d3973 100644
--- a/docs/fsharp/using-fsharp-on-azure/blob-storage.md
+++ b/docs/fsharp/using-fsharp-on-azure/blob-storage.md
@@ -4,6 +4,7 @@ description: Store unstructured data in the cloud with Azure Blob Storage.
author: sylvanc
ms.date: 09/17/2024
ms.custom: "devx-track-fsharp"
+ai-usage: ai-assisted
---
# Get started with Azure Blob Storage using F\#
@@ -11,7 +12,10 @@ Azure Blob Storage is a service that stores unstructured data in the cloud as ob
This article shows you how to perform common tasks using Blob storage. The samples are written using F# using the Azure Storage Client Library for .NET. The tasks covered include how to upload, list, download, and delete blobs.
-For a conceptual overview of blob storage, see [the .NET guide for blob storage](/azure/storage/blobs/storage-quickstart-blobs-dotnet). For ease, these tutorials use [connection strings](/azure/storage/storage-configure-connection-string) to authenticate with Azure. For optimal security, you should use Microsoft Entra ID with [managed identities](/entra/identity/managed-identities-azure-resources/).
+For a conceptual overview of blob storage, see [the .NET guide for blob storage](/azure/storage/blobs/storage-quickstart-blobs-dotnet). For ease, these tutorials use [connection strings](/azure/storage/storage-configure-connection-string) to authenticate with Azure. For production applications, you should use Microsoft Entra ID with [managed identities](/entra/identity/managed-identities-azure-resources/) or the [Azure.Identity library](/dotnet/api/overview/azure/identity-readme) for enhanced security.
+
+> [!NOTE]
+> This article uses the standard Azure Storage Client Library for .NET. F# developers might consider the [FSharp.Azure.Blob](https://github.com/random82/FSharp.Azure.Blob) library, which provides a more idiomatic F# API for working with Azure Blob Storage. This community library offers idiomatic F# functions and patterns that make blob operations more natural in F#.
## Prerequisites
@@ -90,7 +94,7 @@ To upload a file to a block blob, get a container client and use it to get a blo
## List the blobs in a container
-To list the blobs in a container, first get a container reference. You can then use the container's `GetBlobs` method to retrieve the blobs and/or directories within it. To access the rich set of properties and methods for a returned `BlobItem`.
+To list the blobs in a container, first get a container reference. You can then use the container's `GetBlobsByHierarchy` method to retrieve the blobs and/or directories within it. This method returns `BlobItem` objects that provide access to blob properties and metadata.
[!code-fsharp[BlobStorage](../../../samples/snippets/fsharp/azure/blob-storage.fsx#L57-L58)]
@@ -134,7 +138,7 @@ To delete a blob, first get a blob reference and then call the
If you are listing a large number of blobs, or you want to control the number of results you return in one listing operation, you can list blobs in pages of results. This example shows how to return results in pages.
-This example shows a hierarchical listing, by using the `GetBlobsByHierarchy` method of the `BlobClient` .
+This example shows a hierarchical listing, by using the `GetBlobsByHierarchy` method of the `BlobContainerClient`.
[!code-fsharp[BlobStorage](../../../samples/snippets/fsharp/azure/blob-storage.fsx#L88-L100)]
diff --git a/docs/orleans/streaming/snippets/broadcastchannel/BroadcastChannel.Client/BroadcastChannel.Client.csproj b/docs/orleans/streaming/snippets/broadcastchannel/BroadcastChannel.Client/BroadcastChannel.Client.csproj
index 02dd01c59ec10..45a3f109fb19e 100644
--- a/docs/orleans/streaming/snippets/broadcastchannel/BroadcastChannel.Client/BroadcastChannel.Client.csproj
+++ b/docs/orleans/streaming/snippets/broadcastchannel/BroadcastChannel.Client/BroadcastChannel.Client.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/docs/orleans/streaming/snippets/broadcastchannel/BroadcastChannel.Silo/BroadcastChannel.Silo.csproj b/docs/orleans/streaming/snippets/broadcastchannel/BroadcastChannel.Silo/BroadcastChannel.Silo.csproj
index fd9e735c2b35c..f7c2a73719c3f 100644
--- a/docs/orleans/streaming/snippets/broadcastchannel/BroadcastChannel.Silo/BroadcastChannel.Silo.csproj
+++ b/docs/orleans/streaming/snippets/broadcastchannel/BroadcastChannel.Silo/BroadcastChannel.Silo.csproj
@@ -8,8 +8,8 @@
-
-
+
+
diff --git a/docs/orleans/tutorials-and-samples/snippets/minimal/Silo/Silo.csproj b/docs/orleans/tutorials-and-samples/snippets/minimal/Silo/Silo.csproj
index a60b4aae4d820..b196ce5fd0827 100644
--- a/docs/orleans/tutorials-and-samples/snippets/minimal/Silo/Silo.csproj
+++ b/docs/orleans/tutorials-and-samples/snippets/minimal/Silo/Silo.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/samples/snippets/fsharp/azure/blob-storage.fsx b/samples/snippets/fsharp/azure/blob-storage.fsx
index 8ac4f7b1fc929..77e34963a6327 100644
--- a/samples/snippets/fsharp/azure/blob-storage.fsx
+++ b/samples/snippets/fsharp/azure/blob-storage.fsx
@@ -102,8 +102,7 @@ let ListBlobsSegmentedInHierarchicalListing(container:BlobContainerClient) =
// Create some dummy data by uploading the same file over and over again
for i in 1 .. 100 do
- let blob = container.GetBlobClient($"myblob{i}.txt")
- use fileStream = System.IO.File.OpenRead(localFile)
+ let blob = container.GetBlobClient($"myblob{i}.txt")
blob.Upload(localFile)
ListBlobsSegmentedInHierarchicalListing container
@@ -122,8 +121,8 @@ appendContainer.CreateIfNotExists() |> ignore
let appendBlob = appendContainer.GetAppendBlobClient("append-blob.log")
// Create the append blob. Note that if the blob already exists, the
-// CreateOrReplace() method will overwrite it. You can check whether the
-// blob exists to avoid overwriting it by using CloudAppendBlob.Exists().
+// CreateIfNotExists() method will overwrite it. You can check whether the
+// blob exists to avoid overwriting it by using appendBlob.Exists().
appendBlob.CreateIfNotExists()
let numBlocks = 10
@@ -142,5 +141,5 @@ for i in 0 .. numBlocks - 1 do
appendBlob.AppendBlock(stream)
// Read the append blob to the console window.
-let downloadedText = appendBlob.DownloadContent().ToString()
+let downloadedText = appendBlob.DownloadContent().Value.Content.ToString()
printfn $"{downloadedText}"