diff --git a/.github/ISSUE_TEMPLATE/02-breaking-change.yml b/.github/ISSUE_TEMPLATE/02-breaking-change.yml index d7e5ef1edc7a3..06f641c74e7ea 100644 --- a/.github/ISSUE_TEMPLATE/02-breaking-change.yml +++ b/.github/ISSUE_TEMPLATE/02-breaking-change.yml @@ -6,7 +6,7 @@ labels: - Pri1 - doc-idea assignees: - - camsoper + - gewarren body: - type: textarea id: description diff --git a/.github/workflows/markdownlint.yml b/.github/workflows/markdownlint.yml index 05110e2387956..d54e522d3d31f 100644 --- a/.github/workflows/markdownlint.yml +++ b/.github/workflows/markdownlint.yml @@ -27,7 +27,7 @@ jobs: egress-policy: audit - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - - uses: DavidAnson/markdownlint-cli2-action@05f32210e84442804257b2a6f20b273450ec8265 # v19.1.0 + - uses: DavidAnson/markdownlint-cli2-action@992badcdf24e3b8eb7e87ff9287fe931bcb00c6e # v20.0.0 with: config: ".markdownlint-cli2.jsonc" globs: "**/*.md" diff --git a/.github/workflows/scorecards.yml b/.github/workflows/scorecards.yml index c846e6023e49e..064b049b15f1c 100644 --- a/.github/workflows/scorecards.yml +++ b/.github/workflows/scorecards.yml @@ -71,6 +71,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard. - name: "Upload to code-scanning" - uses: github/codeql-action/upload-sarif@60168efe1c415ce0f5521ea06d5c2062adbeed1b # v3.28.17 + uses: github/codeql-action/upload-sarif@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18 with: sarif_file: results.sarif diff --git a/.markdownlint-cli2.jsonc b/.markdownlint-cli2.jsonc index 1d5279d4fda48..9aa448457744d 100644 --- a/.markdownlint-cli2.jsonc +++ b/.markdownlint-cli2.jsonc @@ -59,7 +59,8 @@ "MD050": { "style": "asterisk" }, - "MD051": false + "MD051": false, + "MD059": false }, "ignores": [ ".github/", diff --git a/docfx.json b/docfx.json index f9a21e076dc7e..19b2441f2fb2b 100644 --- a/docfx.json +++ b/docfx.json @@ -335,8 +335,7 @@ "docs/architecture/modernize-desktop/**/**.md": "OliaG", "docs/azure/**/*.*": "alexwolfmsft", "docs/core/**/**.md": "gewarren", - "docs/core/compatibility/**/**.md": "camsoper", - "docs/core/containers/**/**.md": "camsoper", + "docs/core/compatibility/**/**.md": "gewarren", "docs/core/deploying/**/**.md": "adegeo", "docs/core/diagnostics/**/**.md": "tommcdon", "docs/core/extensions/**/**.md": "IEvangelist", @@ -349,13 +348,13 @@ "docs/core/tools/**/**.md": "tdykstra", "docs/core/tutorials/**/**.md": "tdykstra", "docs/core/versions/**/**.md": "billwagner", - "docs/core/whats-new/**/**.md": "camsoper", + "docs/core/whats-new/**/**.md": "gewarren", "docs/csharp/**/*.*": "billwagner", "docs/framework/**/**.md": "gewarren", "docs/framework/additional-apis/pos-for-net/**/**.md": "TerryWarwick", "docs/framework/app-domains/**/**.md": "gewarren", "docs/framework/configure-apps/file-schema/network/**/**.md": "karelz", - "docs/framework/configure-apps/file-schema/wcf/**/**.md": "HongGit", + "docs/framework/configure-apps/file-schema/wcf/**/**.md": "mconnew", "docs/framework/configure-apps/file-schema/winforms/**/**.md": "adegeo", "docs/framework/data/**/**.md": "cmastr", "docs/framework/deployment/**/**.md": "adegeo", @@ -378,12 +377,11 @@ "docs/framework/unmanaged-api/strong-naming/**/**.md": "jeffschwMSFT", "docs/framework/unmanaged-api/tlbexp/**/**.md": "jeffschwMSFT", "docs/framework/whats-new/**/**.md": "gewarren", - "docs/framework/wcf/**/**.md": "HongGit", - "docs/fsharp/**/**.md": "KathleenDollard", + "docs/framework/wcf/**/**.md": "mconnew", + "docs/fsharp/**/**.md": "billwagner", "docs/fundamentals/code-analysis/**/**.md": "gewarren", "docs/fundamentals/runtime-libraries/**/**.md": "gewarren", "docs/fundamentals/syslib-diagnostics/**/**.md": "gewarren", - "docs/iot/**/*.*": "camsoper", "docs/machine-learning/**/**.md": "gewarren", "docs/orleans/**/*.*": "IEvangelist", "docs/standard/**/**.md": "gewarren", @@ -413,7 +411,7 @@ "docs/standard/serialization/**/**.md": "gewarren", "docs/standard/threading/**/**.md": "billwagner", "docs/standard/whats-new/**/**.md": "gewarren", - "docs/visual-basic/**/**.md": "KathleenDollard", + "docs/visual-basic/**/**.md": "billwagner", "docs/whats-new/**/**.md": "billwagner", "includes/**/**.md": "docs" }, @@ -429,8 +427,7 @@ "docs/azure/**/*.*": "alexwolf", "docs/orleans/**/*.*": "dapine", "docs/core/**/**.md": "dotnetcontent", - "docs/core/compatibility/**/**.md": "casoper", - "docs/core/containers/**/**.md": "casoper", + "docs/core/compatibility/**/**.md": "gewarren", "docs/core/deploying/**/**.md": "adegeo", "docs/core/diagnostics/**/**.md": "tommcdon", "docs/core/extensions/**/**.md": "dapine", @@ -444,7 +441,7 @@ "docs/core/tools/**/**.md": "tdykstra", "docs/core/tutorials/**/**.md": "tdykstra", "docs/core/versions/**/**.md": "wiwagn", - "docs/core/whats-new/**/**.md": "casoper", + "docs/core/whats-new/**/**.md": "gewarren", "docs/csharp/**/*.*": "wiwagn", "docs/framework/**/**.md": "dotnetcontent", "docs/framework/app-domains/**/**.md": "gewarren", @@ -470,11 +467,10 @@ "docs/framework/unmanaged-api/strong-naming/**/**.md": "jeffschw", "docs/framework/unmanaged-api/tlbexp/**/**.md": "jeffschw", "docs/framework/whats-new/**/**.md": "gewarren", - "docs/fsharp/**/**.md": "kdollard", + "docs/fsharp/**/**.md": "wiwagn", "docs/fundamentals/code-analysis/**/*.md": "gewarren", "docs/fundamentals/runtime-libraries/**/**.md": "gewarren", "docs/fundamentals/syslib-diagnostics/**/**.md": "gewarren", - "docs/iot/**/*.*": "casoper", "docs/machine-learning/**/**.md": "gewarren", "docs/standard/**/**.md": "gewarren", "docs/standard/analyzers/**/**.md": "dapine", @@ -502,7 +498,7 @@ "docs/standard/serialization/**/**.md": "gewarren", "docs/standard/threading/**/**.md": "wiwagn", "docs/standard/whats-new/**/**.md": "dotnetcontent", - "docs/visual-basic/**/**.md": "kdollard", + "docs/visual-basic/**/**.md": "wiwagn", "includes/**/**.md": "dapine" }, "ms.date": { diff --git a/docs/ai/dotnet-ai-ecosystem.md b/docs/ai/dotnet-ai-ecosystem.md index 911b75612c410..2151c7c7cd455 100644 --- a/docs/ai/dotnet-ai-ecosystem.md +++ b/docs/ai/dotnet-ai-ecosystem.md @@ -77,10 +77,6 @@ For example, you can use [Ollama](https://ollama.com/) to [connect to local AI m [!INCLUDE [vector-databases](includes/vector-databases.md)] -## Other options - -This article summarized the tools and SDKs in the .NET ecosystem, with a focus on services that provide official support for .NET. Depending on your needs and stage of app development, you might also want to take a look at the open-source options for the ecosystem in [the unofficial list of .NET + AI resources](https://github.com/jmatthiesen/dotnet-ai-resources?tab=readme-ov-file#models). Microsoft is not the maintainer of many of these projects, so be sure to review their quality, licensing, and support. - ## Next steps - [What is Semantic Kernel?](/semantic-kernel/overview/) diff --git a/docs/ai/how-to/snippets/content-filtering/AIContentFiltering.csproj b/docs/ai/how-to/snippets/content-filtering/AIContentFiltering.csproj index 9a318a5db9eca..9a1068b48a322 100644 --- a/docs/ai/how-to/snippets/content-filtering/AIContentFiltering.csproj +++ b/docs/ai/how-to/snippets/content-filtering/AIContentFiltering.csproj @@ -10,7 +10,7 @@ - + diff --git a/docs/ai/how-to/snippets/hosted-app-auth/hosted-app-auth.csproj b/docs/ai/how-to/snippets/hosted-app-auth/hosted-app-auth.csproj index 491c176bc852b..5c825f3c199eb 100644 --- a/docs/ai/how-to/snippets/hosted-app-auth/hosted-app-auth.csproj +++ b/docs/ai/how-to/snippets/hosted-app-auth/hosted-app-auth.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/ai/quickstarts/chat-local-model.md b/docs/ai/quickstarts/chat-local-model.md index 94c4489987ce5..46ef0e54c8c16 100644 --- a/docs/ai/quickstarts/chat-local-model.md +++ b/docs/ai/quickstarts/chat-local-model.md @@ -62,7 +62,7 @@ Complete the following steps to create a .NET console app that connects to your dotnet new console -o LocalAI ``` -1. Add the [Microsoft.Extensions.AI.Ollama](https://aka.ms/meai-ollama-nuget) packages to your app: +1. Add the [Microsoft.Extensions.AI.Ollama](https://www.nuget.org/packages/Microsoft.Extensions.AI.Ollama/) package to your app: ```dotnetcli dotnet add package Microsoft.Extensions.AI.Ollama --prerelease diff --git a/docs/ai/quickstarts/snippets/evaluate-ai-responses/TestAI.csproj b/docs/ai/quickstarts/snippets/evaluate-ai-responses/TestAI.csproj index a79715c9294e2..4cda9cb3d0259 100644 --- a/docs/ai/quickstarts/snippets/evaluate-ai-responses/TestAI.csproj +++ b/docs/ai/quickstarts/snippets/evaluate-ai-responses/TestAI.csproj @@ -11,14 +11,14 @@ - - - + + + - - + + diff --git a/docs/ai/quickstarts/snippets/function-calling/azure-openai/FunctionCallingAI.csproj b/docs/ai/quickstarts/snippets/function-calling/azure-openai/FunctionCallingAI.csproj index 1b7513722ca4f..07b1ab89bbe7c 100644 --- a/docs/ai/quickstarts/snippets/function-calling/azure-openai/FunctionCallingAI.csproj +++ b/docs/ai/quickstarts/snippets/function-calling/azure-openai/FunctionCallingAI.csproj @@ -11,11 +11,11 @@ - + - + diff --git a/docs/ai/quickstarts/snippets/function-calling/openai/FunctionCallingAI.csproj b/docs/ai/quickstarts/snippets/function-calling/openai/FunctionCallingAI.csproj index 5715db4be3b8c..db8f435639317 100644 --- a/docs/ai/quickstarts/snippets/function-calling/openai/FunctionCallingAI.csproj +++ b/docs/ai/quickstarts/snippets/function-calling/openai/FunctionCallingAI.csproj @@ -8,10 +8,10 @@ - + - + diff --git a/docs/ai/quickstarts/snippets/local-ai/Program.cs b/docs/ai/quickstarts/snippets/local-ai/Program.cs index 5e0a731fca0e3..462240636407d 100644 --- a/docs/ai/quickstarts/snippets/local-ai/Program.cs +++ b/docs/ai/quickstarts/snippets/local-ai/Program.cs @@ -16,7 +16,7 @@ // Stream the AI response and add to chat history Console.WriteLine("AI Response:"); var response = ""; - await foreach (var item in + await foreach (ChatResponseUpdate item in chatClient.GetStreamingResponseAsync(chatHistory)) { Console.Write(item.Text); diff --git a/docs/ai/quickstarts/snippets/local-ai/ollama.csproj b/docs/ai/quickstarts/snippets/local-ai/ollama.csproj index 4e18cbef25303..72769923af101 100644 --- a/docs/ai/quickstarts/snippets/local-ai/ollama.csproj +++ b/docs/ai/quickstarts/snippets/local-ai/ollama.csproj @@ -8,7 +8,7 @@ - + diff --git a/docs/ai/quickstarts/snippets/structured-output/SOChat.csproj b/docs/ai/quickstarts/snippets/structured-output/SOChat.csproj index 5cfcfb49e563d..4af43c8f2ed62 100644 --- a/docs/ai/quickstarts/snippets/structured-output/SOChat.csproj +++ b/docs/ai/quickstarts/snippets/structured-output/SOChat.csproj @@ -11,7 +11,7 @@ - + diff --git a/docs/ai/snippets/microsoft-extensions-ai/AI.Shared/AI.Shared.csproj b/docs/ai/snippets/microsoft-extensions-ai/AI.Shared/AI.Shared.csproj index d7fcc5477eca3..b1898eb08041a 100644 --- a/docs/ai/snippets/microsoft-extensions-ai/AI.Shared/AI.Shared.csproj +++ b/docs/ai/snippets/microsoft-extensions-ai/AI.Shared/AI.Shared.csproj @@ -7,7 +7,7 @@ - + diff --git a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.CacheResponses/ConsoleAI.CacheResponses.csproj b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.CacheResponses/ConsoleAI.CacheResponses.csproj index 94db5114b14ba..d3eac63d4f11d 100644 --- a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.CacheResponses/ConsoleAI.CacheResponses.csproj +++ b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.CacheResponses/ConsoleAI.CacheResponses.csproj @@ -8,7 +8,7 @@ - + diff --git a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.ConsumeClientMiddleware/ConsoleAI.ConsumeClientMiddleware.csproj b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.ConsumeClientMiddleware/ConsoleAI.ConsumeClientMiddleware.csproj index 6da26fd2e1c47..eec4c52e0697b 100644 --- a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.ConsumeClientMiddleware/ConsoleAI.ConsumeClientMiddleware.csproj +++ b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.ConsumeClientMiddleware/ConsoleAI.ConsumeClientMiddleware.csproj @@ -8,7 +8,7 @@ - + diff --git a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.CustomClientMiddle/ConsoleAI.CustomClientMiddle.csproj b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.CustomClientMiddle/ConsoleAI.CustomClientMiddle.csproj index 5a2a4cd8162cc..a2b55209ee7a3 100644 --- a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.CustomClientMiddle/ConsoleAI.CustomClientMiddle.csproj +++ b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.CustomClientMiddle/ConsoleAI.CustomClientMiddle.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.DependencyInjection/ConsoleAI.DependencyInjection.csproj b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.DependencyInjection/ConsoleAI.DependencyInjection.csproj index 750573ef5aaf2..237efaa795212 100644 --- a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.DependencyInjection/ConsoleAI.DependencyInjection.csproj +++ b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.DependencyInjection/ConsoleAI.DependencyInjection.csproj @@ -8,7 +8,7 @@ - + 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 03aff906ad4f0..a1dfb4ddd3ab7 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/ai/snippets/microsoft-extensions-ai/ConsoleAI.ProvideOptions/ConsoleAI.ProvideOptions.csproj b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.ProvideOptions/ConsoleAI.ProvideOptions.csproj index deb4106409231..f9bbd4a47b53b 100644 --- a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.ProvideOptions/ConsoleAI.ProvideOptions.csproj +++ b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.ProvideOptions/ConsoleAI.ProvideOptions.csproj @@ -8,7 +8,7 @@ - + diff --git a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.StatelessStateful/ConsoleAI.StatelessStateful.csproj b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.StatelessStateful/ConsoleAI.StatelessStateful.csproj index 64aeca66a5074..4d4d6c15bd6ba 100644 --- a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.StatelessStateful/ConsoleAI.StatelessStateful.csproj +++ b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.StatelessStateful/ConsoleAI.StatelessStateful.csproj @@ -8,7 +8,7 @@ - + diff --git a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.ToolCalling/ConsoleAI.ToolCalling.csproj b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.ToolCalling/ConsoleAI.ToolCalling.csproj index deb4106409231..f9bbd4a47b53b 100644 --- a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.ToolCalling/ConsoleAI.ToolCalling.csproj +++ b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.ToolCalling/ConsoleAI.ToolCalling.csproj @@ -8,7 +8,7 @@ - + diff --git a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.UseExample/ConsoleAI.UseExample.csproj b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.UseExample/ConsoleAI.UseExample.csproj index deb4106409231..f9bbd4a47b53b 100644 --- a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.UseExample/ConsoleAI.UseExample.csproj +++ b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI.UseExample/ConsoleAI.UseExample.csproj @@ -8,7 +8,7 @@ - + diff --git a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI/ConsoleAI.csproj b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI/ConsoleAI.csproj index aab4f3574131f..a001a0f99a5b2 100644 --- a/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI/ConsoleAI.csproj +++ b/docs/ai/snippets/microsoft-extensions-ai/ConsoleAI/ConsoleAI.csproj @@ -8,7 +8,7 @@ - + diff --git a/docs/ai/tutorials/evaluate-safety.md b/docs/ai/tutorials/evaluate-safety.md index af9ef21a4f304..875c237a28be2 100644 --- a/docs/ai/tutorials/evaluate-safety.md +++ b/docs/ai/tutorials/evaluate-safety.md @@ -109,7 +109,7 @@ Complete the following steps to create an MSTest project. Response caching functionality is supported and works the same way regardless of whether the evaluators talk to an LLM or to the Azure AI Foundry Evaluation service. The response will be reused until the corresponding cache entry expires (in 14 days by default), or until any request parameter, such as the the LLM endpoint or the question being asked, is changed. > [!NOTE] - > This code example passes the LLM as `originalChatClient` to `ToChatConfiguration` . The reason to include the LLM chat client here is to enable getting a chat response from the LLM, and notably, to enable response caching for it. (If you don't want to cache the LLM's response, you can create a separate, local to fetch the response from the LLM.) Instead of passing a , if you already have a for an LLM from another reporting configuration, you can pass that instead, using the overload. + > This code example passes the LLM as `originalChatClient` to . The reason to include the LLM chat client here is to enable getting a chat response from the LLM, and notably, to enable response caching for it. (If you don't want to cache the LLM's response, you can create a separate, local to fetch the response from the LLM.) Instead of passing a , if you already have a for an LLM from another reporting configuration, you can pass that instead, using the overload. > > Similarly, if you configure both [LLM-based evaluators](../conceptual/evaluation-libraries.md#quality-evaluators) and [Azure AI Foundry Evaluation service–based evaluators](../conceptual/evaluation-libraries.md#safety-evaluators) in the reporting configuration, you also need to pass the LLM to . Then it returns a that can talk to both types of evaluators. diff --git a/docs/ai/tutorials/snippets/llm-eval/llm-eval.csproj b/docs/ai/tutorials/snippets/llm-eval/llm-eval.csproj index f6c5b339947c6..9dd80a1d94607 100644 --- a/docs/ai/tutorials/snippets/llm-eval/llm-eval.csproj +++ b/docs/ai/tutorials/snippets/llm-eval/llm-eval.csproj @@ -12,7 +12,7 @@ - + diff --git a/docs/architecture/microservices/microservice-ddd-cqrs-patterns/client-side-validation.md b/docs/architecture/microservices/microservice-ddd-cqrs-patterns/client-side-validation.md index e9cd880c8e1e0..a37294df0edaa 100644 --- a/docs/architecture/microservices/microservice-ddd-cqrs-patterns/client-side-validation.md +++ b/docs/architecture/microservices/microservice-ddd-cqrs-patterns/client-side-validation.md @@ -23,7 +23,7 @@ The implementation of client-side validation depends on what kind of client appl ### Validation in ASP.NET Core apps -- **Rick Anderson. Adding validation** \ +- **Add validation** \ [https://learn.microsoft.com/aspnet/core/tutorials/first-mvc-app/validation](/aspnet/core/tutorials/first-mvc-app/validation) ### Validation in SPA Web apps (Angular 2, TypeScript, JavaScript, Blazor WebAssembly) diff --git a/docs/architecture/microservices/microservice-ddd-cqrs-patterns/domain-model-layer-validations.md b/docs/architecture/microservices/microservice-ddd-cqrs-patterns/domain-model-layer-validations.md index 1775c9c6b4d53..e6c0a83cb62ed 100644 --- a/docs/architecture/microservices/microservice-ddd-cqrs-patterns/domain-model-layer-validations.md +++ b/docs/architecture/microservices/microservice-ddd-cqrs-patterns/domain-model-layer-validations.md @@ -85,7 +85,7 @@ Using field validation with data annotations, for example, you do not duplicate - **Rachel Appel. Introduction to model validation in ASP.NET Core MVC** \ [https://learn.microsoft.com/aspnet/core/mvc/models/validation](/aspnet/core/mvc/models/validation) -- **Rick Anderson. Adding validation** \ +- **Add validation** \ [https://learn.microsoft.com/aspnet/core/tutorials/first-mvc-app/validation](/aspnet/core/tutorials/first-mvc-app/validation) - **Martin Fowler. Replacing Throwing Exceptions with Notification in Validations** \ diff --git a/docs/architecture/microservices/secure-net-microservices-web-applications/index.md b/docs/architecture/microservices/secure-net-microservices-web-applications/index.md index 0227feed3b967..e928514c6b352 100644 --- a/docs/architecture/microservices/secure-net-microservices-web-applications/index.md +++ b/docs/architecture/microservices/secure-net-microservices-web-applications/index.md @@ -286,7 +286,7 @@ The JWT bearer authentication middleware can also support more advanced scenario - **Introduction to Identity** \ [https://learn.microsoft.com/aspnet/core/security/authentication/identity](/aspnet/core/security/authentication/identity) -- **Rick Anderson. Two-factor authentication with SMS** \ +- **Two-factor authentication with SMS** \ [https://learn.microsoft.com/aspnet/core/security/authentication/2fa](/aspnet/core/security/authentication/2fa) - **Enabling authentication using Facebook, Google and other external providers** \ diff --git a/docs/azure/includes/dotnet-all.md b/docs/azure/includes/dotnet-all.md index 8d264b24d23a5..7c79d45e307da 100644 --- a/docs/azure/includes/dotnet-all.md +++ b/docs/azure/includes/dotnet-all.md @@ -131,7 +131,7 @@ | Core - Client - Spatial | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Core.Spatial-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial_1.1.0/sdk/core/Microsoft.Azure.Core.Spatial/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial_1.2.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial/) | | Core - Client - Spatial Newtonsoft Json | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.0.0)
NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Core.Spatial.NewtonsoftJson-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.0.0/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/)
GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.1.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/) | | Functions extension for Azure Tables | NuGet [1.3.3](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Tables/1.3.3) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Tables-readme) | GitHub [1.3.3](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Tables_1.3.3/sdk/tables/Microsoft.Azure.WebJobs.Extensions.Tables/) | -| Key Encryptor for .NET Data Protection | NuGet [1.5.0](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.DataProtection.Keys/1.5.0) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.DataProtection.Keys-readme) | GitHub [1.5.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.DataProtection.Keys_1.5.0/sdk/extensions/Azure.Extensions.AspNetCore.DataProtection.Keys/) | +| Key Encryptor for .NET Data Protection | NuGet [1.6.0](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.DataProtection.Keys/1.6.0) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.DataProtection.Keys-readme) | GitHub [1.6.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.DataProtection.Keys_1.6.0/sdk/extensions/Azure.Extensions.AspNetCore.DataProtection.Keys/) | | Secrets Configuration Provider for .NET | NuGet [1.4.0](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.Configuration.Secrets/1.4.0) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.Configuration.Secrets-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.Configuration.Secrets_1.4.0/sdk/extensions/Azure.Extensions.AspNetCore.Configuration.Secrets/) | | Storage - Common | NuGet [12.23.0](https://www.nuget.org/packages/Azure.Storage.Common/12.23.0)
NuGet [12.24.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Common/12.24.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Common-readme) | GitHub [12.23.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.23.0/sdk/storage/Azure.Storage.Common/)
GitHub [12.24.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.24.0-beta.1/sdk/storage/Azure.Storage.Common/) | | WebJobs Extensions - Event Grid | NuGet [3.4.4](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventGrid/3.4.4) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventGrid-readme) | GitHub [3.4.4](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventGrid_3.4.4/sdk/eventgrid/Microsoft.Azure.WebJobs.Extensions.EventGrid/) | @@ -386,7 +386,7 @@ | Functions Extension MCP | NuGet [1.0.0-preview.6](https://www.nuget.org/packages/Microsoft.Azure.Functions.Extensions.Mcp/1.0.0-preview.6) | | | | Functions Worker Extension MCP | NuGet [1.0.0-preview.6](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Mcp/1.0.0-preview.6) | | | | Functions Worker Extension MySQL | NuGet [1.0.129](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.MySql/1.0.129) | | | -| HTTP ASPNETCore Analyzers | NuGet [1.0.3](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore.Analyzers/1.0.3) | | | +| HTTP ASPNETCore Analyzers | NuGet [1.0.4](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore.Analyzers/1.0.4) | | | | IoT Operations MQTT | NuGet [0.10.1](https://www.nuget.org/packages/Azure.Iot.Operations.Mqtt/0.10.1) | | | | IoT Operations Protocol | NuGet [0.11.0](https://www.nuget.org/packages/Azure.Iot.Operations.Protocol/0.11.0) | | | | IoT Operations Services | NuGet [0.11.0](https://www.nuget.org/packages/Azure.Iot.Operations.Services/0.11.0) | | | @@ -518,7 +518,7 @@ | Functions extension for Durable Task Framework - isolated worker | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.DurableTask/1.3.0) | | | | Functions extension for HTTP | NuGet [3.2.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Http/3.2.0) | | GitHub [3.2.0](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.1.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Kafka/4.1.0) | | GitHub [4.1.0](https://github.com/Azure/azure-functions-kafka-extension/tree/3.0.0/src/Microsoft.Azure.WebJobs.Extensions.Kafka) | +| Functions extension for Kafka | NuGet [4.1.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Kafka/4.1.1) | | GitHub [4.1.1](https://github.com/Azure/azure-functions-kafka-extension/tree/3.0.0/src/Microsoft.Azure.WebJobs.Extensions.Kafka) | | Functions extension for Notification Hubs | NuGet [1.3.0](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.NotificationHubs/1.3.0) | | GitHub [1.3.0](https://github.com/Azure/azure-webjobs-sdk-extensions) | | Functions extension for RabbitMQ | NuGet [2.0.4](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.RabbitMQ/2.0.4) | | GitHub [2.0.4](https://github.com/Azure/azure-functions-rabbitmq-extension/tree/v0.2.2029-beta) | | Functions extension for script abstractions | NuGet [1.0.4-preview](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Script.Abstractions/1.0.4-preview) | | | @@ -530,7 +530,7 @@ | Functions Extensions - Cosmos DB ChangeProcessor | NuGet [1.0.2](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.CosmosDb.ChangeProcessor/1.0.2) | | | | Functions Extensions - Dapr | NuGet [1.0.1](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Dapr/1.0.1) | | | | Functions Extensions - Dapr Core | NuGet [1.0.1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Extensions.Dapr.Core/1.0.1) | | | -| Functions Extensions - HTTP AspNet Core | NuGet [2.0.1](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore/2.0.1) | | | +| Functions Extensions - HTTP AspNet Core | NuGet [2.0.2](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Http.AspNetCore/2.0.2) | | | | 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) | | | diff --git a/docs/azure/includes/dotnet-new.md b/docs/azure/includes/dotnet-new.md index b336a8f9952c0..44d65795a766b 100644 --- a/docs/azure/includes/dotnet-new.md +++ b/docs/azure/includes/dotnet-new.md @@ -136,7 +136,7 @@ | Core - Client - Spatial | NuGet [1.1.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial/1.1.0)
NuGet [1.2.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial/1.2.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Core.Spatial-readme) | GitHub [1.1.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial_1.1.0/sdk/core/Microsoft.Azure.Core.Spatial/)
GitHub [1.2.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial_1.2.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial/) | | Core - Client - Spatial Newtonsoft Json | NuGet [1.0.0](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.0.0)
NuGet [1.1.0-beta.1](https://www.nuget.org/packages/Microsoft.Azure.Core.Spatial.NewtonsoftJson/1.1.0-beta.1) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.Core.Spatial.NewtonsoftJson-readme) | GitHub [1.0.0](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.0.0/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/)
GitHub [1.1.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.Core.Spatial.NewtonsoftJson_1.1.0-beta.1/sdk/core/Microsoft.Azure.Core.Spatial.NewtonsoftJson/) | | Functions extension for Azure Tables | NuGet [1.3.3](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Tables/1.3.3) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.Tables-readme) | GitHub [1.3.3](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.Tables_1.3.3/sdk/tables/Microsoft.Azure.WebJobs.Extensions.Tables/) | -| Key Encryptor for .NET Data Protection | NuGet [1.5.0](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.DataProtection.Keys/1.5.0) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.DataProtection.Keys-readme) | GitHub [1.5.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.DataProtection.Keys_1.5.0/sdk/extensions/Azure.Extensions.AspNetCore.DataProtection.Keys/) | +| Key Encryptor for .NET Data Protection | NuGet [1.6.0](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.DataProtection.Keys/1.6.0) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.DataProtection.Keys-readme) | GitHub [1.6.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.DataProtection.Keys_1.6.0/sdk/extensions/Azure.Extensions.AspNetCore.DataProtection.Keys/) | | Secrets Configuration Provider for .NET | NuGet [1.4.0](https://www.nuget.org/packages/Azure.Extensions.AspNetCore.Configuration.Secrets/1.4.0) | [docs](/dotnet/api/overview/azure/Extensions.AspNetCore.Configuration.Secrets-readme) | GitHub [1.4.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Extensions.AspNetCore.Configuration.Secrets_1.4.0/sdk/extensions/Azure.Extensions.AspNetCore.Configuration.Secrets/) | | Storage - Common | NuGet [12.23.0](https://www.nuget.org/packages/Azure.Storage.Common/12.23.0)
NuGet [12.24.0-beta.1](https://www.nuget.org/packages/Azure.Storage.Common/12.24.0-beta.1) | [docs](/dotnet/api/overview/azure/Storage.Common-readme) | GitHub [12.23.0](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.23.0/sdk/storage/Azure.Storage.Common/)
GitHub [12.24.0-beta.1](https://github.com/Azure/azure-sdk-for-net/tree/Azure.Storage.Common_12.24.0-beta.1/sdk/storage/Azure.Storage.Common/) | | WebJobs Extensions - Event Grid | NuGet [3.4.4](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.EventGrid/3.4.4) | [docs](/dotnet/api/overview/azure/Microsoft.Azure.WebJobs.Extensions.EventGrid-readme) | GitHub [3.4.4](https://github.com/Azure/azure-sdk-for-net/tree/Microsoft.Azure.WebJobs.Extensions.EventGrid_3.4.4/sdk/eventgrid/Microsoft.Azure.WebJobs.Extensions.EventGrid/) | diff --git a/docs/azure/sdk/snippets/logging/LoggingSampleApp.csproj b/docs/azure/sdk/snippets/logging/LoggingSampleApp.csproj index ead8086bcfe72..b81bd07e11897 100644 --- a/docs/azure/sdk/snippets/logging/LoggingSampleApp.csproj +++ b/docs/azure/sdk/snippets/logging/LoggingSampleApp.csproj @@ -8,7 +8,7 @@ - + diff --git a/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj b/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj index 682d2be069098..e0130ffce21ac 100644 --- a/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj +++ b/docs/azure/sdk/snippets/unit-testing/UnitTestingSampleApp.csproj @@ -12,7 +12,7 @@ - + diff --git a/docs/core/compatibility/10.0.md b/docs/core/compatibility/10.0.md index 9e4ba98f107e1..2585f8ebd1f6a 100644 --- a/docs/core/compatibility/10.0.md +++ b/docs/core/compatibility/10.0.md @@ -34,6 +34,12 @@ If you're migrating an app to .NET 10, the breaking changes listed here might af | [MacCatalyst version normalization](core-libraries/10.0/maccatalyst-version-normalization.md) | Behavioral change | Preview 1 | | [System.Linq.AsyncEnumerable included in core libraries](core-libraries/10.0/asyncenumerable.md) | Source incompatible | Preview 1 | +## Extensions + +| Title | Type of change | Introduced version | +|-----------------------------------------------------------------------------------------------------------|---------------------|--------------------| +| [ProviderAliasAttribute moved to Microsoft.Extensions.Logging.Abstractions assembly](extensions/10.0/provideraliasattribute-moved-assembly.md) | Source incompatible | Preview 4 | + ## Globalization | Title | Type of change | Introduced version | diff --git a/docs/core/compatibility/extensions/10.0/provideraliasattribute-moved-assembly.md b/docs/core/compatibility/extensions/10.0/provideraliasattribute-moved-assembly.md new file mode 100644 index 0000000000000..320dc17c2e89d --- /dev/null +++ b/docs/core/compatibility/extensions/10.0/provideraliasattribute-moved-assembly.md @@ -0,0 +1,39 @@ +--- +title: "Breaking change: ProviderAliasAttribute moved to Microsoft.Extensions.Logging.Abstractions assembly" +description: Learn about the breaking change in .NET 10 where the ProviderAliasAttribute class moved from the Microsoft.Extensions.Logging assembly to the Microsoft.Extensions.Logging.Abstractions assembly. +ms.date: 05/19/2025 +--- + +# ProviderAliasAttribute moved to Microsoft.Extensions.Logging.Abstractions + +The attribute has been moved from the `Microsoft.Extensions.Logging` assembly to the `Microsoft.Extensions.Logging.Abstractions` assembly. + +## Version introduced + +.NET 10 Preview 4 + +## Previous behavior + +In previous versions of .NET, was defined in the `Microsoft.Extensions.Logging` assembly. + +## New behavior + +Starting in .NET 10, is defined in `Microsoft.Extensions.Logging.Abstractions` and, to maintain compatibility, is type-forwarded from `Microsoft.Extensions.Logging`. + +## Type of breaking change + +This change can affect [source compatibility](../../categories.md#source-compatibility). + +## Reason for change + +This change allows applications that depend on [Microsoft.Extensions.Logging.Abstractions](https://www.nuget.org/packages/Microsoft.Extensions.Logging.Abstractions) and that use to avoid taking a dependency on the full [Microsoft.Extensions.Logging package](https://www.nuget.org/packages/Microsoft.Extensions.Logging). + +## Recommended action + +In most scenarios, no action is required. The type is [type-forwarded](../../../../standard/assembly/type-forwarding.md) from `Microsoft.Extensions.Logging` to `Microsoft.Extensions.Logging.Abstractions`, which allows existing code to continue to work without modification. + +The only potential breaking scenario occurs when your project references an older version of `Microsoft.Extensions.Logging` alongside the .NET 10 version of `Microsoft.Extensions.Logging.Abstractions`. In this situation, a compilation error might occur due to being defined in both assemblies. To resolve the error, upgrade to the .NET 10 version of `Microsoft.Extensions.Logging`. + +## Affected APIs + +- diff --git a/docs/core/compatibility/toc.yml b/docs/core/compatibility/toc.yml index 02006ae887d8a..4839bacb0f436 100644 --- a/docs/core/compatibility/toc.yml +++ b/docs/core/compatibility/toc.yml @@ -38,6 +38,10 @@ items: href: cryptography/10.0/x509-publickey-null.md - name: Environment variable renamed to DOTNET_OPENSSL_VERSION_OVERRIDE href: cryptography/10.0/version-override.md + - name: Extensions + items: + - name: "ProviderAliasAttribute moved to Microsoft.Extensions.Logging.Abstractions assembly" + href: extensions/10.0/provideraliasattribute-moved-assembly.md - name: Globalization items: - name: Environment variable renamed to DOTNET_ICU_VERSION_OVERRIDE @@ -1746,6 +1750,10 @@ items: href: /ef/core/what-is-new/ef-core-3.x/breaking-changes?toc=/dotnet/core/compatibility/toc.json&bc=/dotnet/breadcrumb/toc.json - name: Extensions items: + - name: .NET 10 + items: + - name: "ProviderAliasAttribute moved to Microsoft.Extensions.Logging.Abstractions assembly" + href: extensions/10.0/provideraliasattribute-moved-assembly.md - name: .NET 8 items: - name: ActivatorUtilities.CreateInstance behaves consistently diff --git a/docs/core/diagnostics/dotnet-trace.md b/docs/core/diagnostics/dotnet-trace.md index 5241946e518a9..9ebcd9603c6ff 100644 --- a/docs/core/diagnostics/dotnet-trace.md +++ b/docs/core/diagnostics/dotnet-trace.md @@ -1,12 +1,12 @@ --- title: dotnet-trace diagnostic tool - .NET CLI description: Learn how to install and use the dotnet-trace CLI tool to collect .NET traces of a running process without the native profiler, by using the .NET EventPipe. -ms.date: 08/22/2024 +ms.date: 05/12/2025 ms.topic: reference --- # dotnet-trace performance analysis utility -**This article applies to:** ✔️ `dotnet-trace` 3.0.47001 and later versions +**This article applies to:** ✔️ `dotnet-trace` 9.0.625801 and later versions ## Install @@ -76,6 +76,7 @@ Collects a diagnostic trace from a running process or launches a child process a ```dotnetcli dotnet-trace collect [--buffersize ] [--clreventlevel ] [--clrevents ] + [--dsrouter ] [--format ] [-h|--help] [--duration dd:hh:mm:ss] [-n, --name ] [--diagnostic-port] [-o|--output ] [-p|--process-id ] [--profile ] [--providers ] @@ -154,6 +155,10 @@ dotnet-trace collect [--buffersize ] [--clreventlevel ] [-- You can read about the CLR provider more in detail on the [.NET runtime provider reference documentation](../../fundamentals/diagnostics/runtime-events.md). +- **`--dsrouter {ios|ios-sim|android|android-emu}** + + Starts [dotnet-dsrouter](dotnet-dsrouter.md) and connects to it. Requires [dotnet-dsrouter](dotnet-dsrouter.md) to be installed. Run `dotnet-dsrouter -h` for more information. + - **`--format {Chromium|NetTrace|Speedscope}`** Sets the output format for the trace file conversion. The default is `NetTrace`. diff --git a/docs/core/extensions/data-classification.md b/docs/core/extensions/data-classification.md index 9e73634554090..3cb93b3b37b01 100644 --- a/docs/core/extensions/data-classification.md +++ b/docs/core/extensions/data-classification.md @@ -63,6 +63,10 @@ If you want to share your custom classification taxonomy with other apps, this c lets you compose multiple data classifications into a single set. This allows you classify your data with multiple data classifications. In addition, the .NET redaction APIs make use of a . +> [!NOTE] +> Multiple data classifications going together as a are treated as a single classification. You can think of it as a logical `AND` operation. For example, +if you configured redaction for data classified as a of `PrivateInformation` and `SocialSecurityNumber`, it will not apply to data classified as only `PrivateInformation` or only `SocialSecurityNumber`. + ## Create custom classification attributes Create custom attributes based on your custom classifications. Use these attributes to tag your data with the right classification. Consider the following custom attribute class definition: diff --git a/docs/core/extensions/snippets/caching/memory-apis/memory-apis.csproj b/docs/core/extensions/snippets/caching/memory-apis/memory-apis.csproj index 7a9367f39120e..a371d690b116e 100644 --- a/docs/core/extensions/snippets/caching/memory-apis/memory-apis.csproj +++ b/docs/core/extensions/snippets/caching/memory-apis/memory-apis.csproj @@ -9,8 +9,8 @@ - - + + diff --git a/docs/core/install/upgrade.md b/docs/core/install/upgrade.md index 81a51a6c48345..ca1b1ffb2845d 100644 --- a/docs/core/install/upgrade.md +++ b/docs/core/install/upgrade.md @@ -38,7 +38,8 @@ Here's how to do it: * Change the `` property value from, for example, `net6.0` to `net8.0`. * The same pattern applies for the `` property if it is being used. -The [Upgrade Assistant](../porting/upgrade-assistant-overview.md) can make these changes automatically. +> [!TIP] +> The [GitHub Copilot app modernization - upgrade](../porting/github-copilot-app-modernization-overview.md) capability can make these changes automatically. The next step is to build the project (or solution) with the new SDK. If additional changes are needed, the SDK will provide warnings and errors that guide you. diff --git a/docs/core/testing/snippets/order-unit-tests/csharp/MSTest.Project/MSTest.Project.csproj b/docs/core/testing/snippets/order-unit-tests/csharp/MSTest.Project/MSTest.Project.csproj index 0565df43d0b2f..e70df2acc15c5 100644 --- a/docs/core/testing/snippets/order-unit-tests/csharp/MSTest.Project/MSTest.Project.csproj +++ b/docs/core/testing/snippets/order-unit-tests/csharp/MSTest.Project/MSTest.Project.csproj @@ -8,9 +8,9 @@ - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/docs/core/testing/snippets/order-unit-tests/csharp/NUnit.TestProject/NUnit.Project.csproj b/docs/core/testing/snippets/order-unit-tests/csharp/NUnit.TestProject/NUnit.Project.csproj index 3a240647c00b5..570251b93b704 100644 --- a/docs/core/testing/snippets/order-unit-tests/csharp/NUnit.TestProject/NUnit.Project.csproj +++ b/docs/core/testing/snippets/order-unit-tests/csharp/NUnit.TestProject/NUnit.Project.csproj @@ -10,7 +10,7 @@ - + all runtime; build; native; contentfiles; analyzers diff --git a/docs/core/testing/snippets/order-unit-tests/csharp/XUnit.TestProject/XUnit.Project.csproj b/docs/core/testing/snippets/order-unit-tests/csharp/XUnit.TestProject/XUnit.Project.csproj index cdb05d0dca4da..8cc84f264f0ed 100644 --- a/docs/core/testing/snippets/order-unit-tests/csharp/XUnit.TestProject/XUnit.Project.csproj +++ b/docs/core/testing/snippets/order-unit-tests/csharp/XUnit.TestProject/XUnit.Project.csproj @@ -8,7 +8,7 @@ - + all diff --git a/docs/core/testing/snippets/testcontext/csharp/project.csproj b/docs/core/testing/snippets/testcontext/csharp/project.csproj index a146c3dc19c79..66b4e984b09b9 100644 --- a/docs/core/testing/snippets/testcontext/csharp/project.csproj +++ b/docs/core/testing/snippets/testcontext/csharp/project.csproj @@ -8,7 +8,7 @@ - + diff --git a/docs/core/testing/snippets/unit-testing-using-mstest/csharp/PrimeService.Tests/PrimeService.Tests.csproj b/docs/core/testing/snippets/unit-testing-using-mstest/csharp/PrimeService.Tests/PrimeService.Tests.csproj index 5fc4eeba913ec..80766f286b819 100644 --- a/docs/core/testing/snippets/unit-testing-using-mstest/csharp/PrimeService.Tests/PrimeService.Tests.csproj +++ b/docs/core/testing/snippets/unit-testing-using-mstest/csharp/PrimeService.Tests/PrimeService.Tests.csproj @@ -7,9 +7,9 @@ - - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/docs/core/tutorials/snippets/library-with-visual-studio/csharp/StringLibraryTest/StringLibraryTest.csproj b/docs/core/tutorials/snippets/library-with-visual-studio/csharp/StringLibraryTest/StringLibraryTest.csproj index cddc2a9bf6bc4..e4f5662602897 100644 --- a/docs/core/tutorials/snippets/library-with-visual-studio/csharp/StringLibraryTest/StringLibraryTest.csproj +++ b/docs/core/tutorials/snippets/library-with-visual-studio/csharp/StringLibraryTest/StringLibraryTest.csproj @@ -7,7 +7,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/docs/core/whats-new/snippets/dotnet-8/csharp/ConsoleApp/Project.csproj b/docs/core/whats-new/snippets/dotnet-8/csharp/ConsoleApp/Project.csproj index 8b8b9557f3533..15595748fed3b 100644 --- a/docs/core/whats-new/snippets/dotnet-8/csharp/ConsoleApp/Project.csproj +++ b/docs/core/whats-new/snippets/dotnet-8/csharp/ConsoleApp/Project.csproj @@ -12,7 +12,7 @@ - + diff --git a/docs/csharp/language-reference/statements/declarations.md b/docs/csharp/language-reference/statements/declarations.md index 18b5a69055cd3..f440a4098912e 100644 --- a/docs/csharp/language-reference/statements/declarations.md +++ b/docs/csharp/language-reference/statements/declarations.md @@ -5,6 +5,8 @@ ms.date: 06/21/2023 f1_keywords: - "var" - "var_CSharpKeyword" + - "scoped" + - "scoped_CSharpKeyword" helpviewer_keywords: - "var keyword [C#]" --- diff --git a/docs/csharp/roslyn-sdk/tutorials/snippets/how-to-write-csharp-analyzer-code-fix/MakeConst/MakeConst.CodeFixes/MakeConst.CodeFixes.csproj b/docs/csharp/roslyn-sdk/tutorials/snippets/how-to-write-csharp-analyzer-code-fix/MakeConst/MakeConst.CodeFixes/MakeConst.CodeFixes.csproj index 518b5257ad14f..26d77e35bd62b 100644 --- a/docs/csharp/roslyn-sdk/tutorials/snippets/how-to-write-csharp-analyzer-code-fix/MakeConst/MakeConst.CodeFixes/MakeConst.CodeFixes.csproj +++ b/docs/csharp/roslyn-sdk/tutorials/snippets/how-to-write-csharp-analyzer-code-fix/MakeConst/MakeConst.CodeFixes/MakeConst.CodeFixes.csproj @@ -7,7 +7,7 @@ - + diff --git a/docs/csharp/roslyn-sdk/tutorials/snippets/how-to-write-csharp-analyzer-code-fix/MakeConst/MakeConst.Test/MakeConst.Test.csproj b/docs/csharp/roslyn-sdk/tutorials/snippets/how-to-write-csharp-analyzer-code-fix/MakeConst/MakeConst.Test/MakeConst.Test.csproj index 25ecefc98b6f3..91cf0b16408fc 100644 --- a/docs/csharp/roslyn-sdk/tutorials/snippets/how-to-write-csharp-analyzer-code-fix/MakeConst/MakeConst.Test/MakeConst.Test.csproj +++ b/docs/csharp/roslyn-sdk/tutorials/snippets/how-to-write-csharp-analyzer-code-fix/MakeConst/MakeConst.Test/MakeConst.Test.csproj @@ -9,9 +9,9 @@ - - - + + + diff --git a/docs/csharp/roslyn-sdk/tutorials/snippets/how-to-write-csharp-analyzer-code-fix/MakeConst/MakeConst.Vsix/MakeConst.Vsix.csproj b/docs/csharp/roslyn-sdk/tutorials/snippets/how-to-write-csharp-analyzer-code-fix/MakeConst/MakeConst.Vsix/MakeConst.Vsix.csproj index 647abe5bbac27..71e00497ba8d6 100644 --- a/docs/csharp/roslyn-sdk/tutorials/snippets/how-to-write-csharp-analyzer-code-fix/MakeConst/MakeConst.Vsix/MakeConst.Vsix.csproj +++ b/docs/csharp/roslyn-sdk/tutorials/snippets/how-to-write-csharp-analyzer-code-fix/MakeConst/MakeConst.Vsix/MakeConst.Vsix.csproj @@ -24,7 +24,7 @@ - + diff --git a/docs/csharp/roslyn-sdk/tutorials/snippets/how-to-write-csharp-analyzer-code-fix/MakeConst/MakeConst/MakeConst.csproj b/docs/csharp/roslyn-sdk/tutorials/snippets/how-to-write-csharp-analyzer-code-fix/MakeConst/MakeConst/MakeConst.csproj index 3efbd01bfcea5..5f5627042fee6 100644 --- a/docs/csharp/roslyn-sdk/tutorials/snippets/how-to-write-csharp-analyzer-code-fix/MakeConst/MakeConst/MakeConst.csproj +++ b/docs/csharp/roslyn-sdk/tutorials/snippets/how-to-write-csharp-analyzer-code-fix/MakeConst/MakeConst/MakeConst.csproj @@ -9,8 +9,8 @@ - - + + diff --git a/docs/fsharp/index.yml b/docs/fsharp/index.yml index 3e5526491cf31..8480d506db697 100644 --- a/docs/fsharp/index.yml +++ b/docs/fsharp/index.yml @@ -8,7 +8,6 @@ metadata: description: "Learn F# programming - for developers new to F#, and experienced F# / .NET developers" ms.topic: landing-page # Required author: KathleenDollard - ms.author: kdollard ms.date: 11/03/2021 landingContent: diff --git a/docs/fundamentals/syslib-diagnostics/syslib0057.md b/docs/fundamentals/syslib-diagnostics/syslib0057.md index 7d49aa5c0969a..09b95a4e0c8ed 100644 --- a/docs/fundamentals/syslib-diagnostics/syslib0057.md +++ b/docs/fundamentals/syslib-diagnostics/syslib0057.md @@ -19,7 +19,7 @@ While this method was easy to use, it created issues where user-supplied data wa Use a different API to load certificate content, depending on the intended content type. -A new class called `X509CertificateLoader` can be used to load X.509 or PKCS12 content: +A new class called can be used to load X.509 or PKCS12 content: - If you're loading X.509 content, use `X509CertificateLoader.LoadCertificate` or `X509CertificateLoader.LoadCertificateFromFile`. - If you're loading PKCS12 content, use `X509CertificateLoader.LoadPkcs12`, `X509CertificateLoader.LoadPkcs12FromFile`, `X509CertificateLoader.LoadPkcs12Collection`, or `X509CertificateLoader.LoadPkcs12CollectionFromFile`. diff --git a/docs/iot/debugging.md b/docs/iot/debugging.md index c1949a88a2ecb..640e6b85ecb91 100644 --- a/docs/iot/debugging.md +++ b/docs/iot/debugging.md @@ -2,7 +2,6 @@ title: Debug .NET apps on ARM single-board computers description: Learn how to debug .NET apps on ARM single-board computers (SBCs) such as Raspberry Pi. author: camsoper -ms.author: casoper ms.date: 07/31/2024 ms.topic: how-to zone_pivot_groups: ide-set-one diff --git a/docs/iot/deployment.md b/docs/iot/deployment.md index bb98f32ac44a0..36fadd2d04158 100644 --- a/docs/iot/deployment.md +++ b/docs/iot/deployment.md @@ -2,7 +2,6 @@ title: Deploy .NET apps to ARM single-board computers description: Learn how to deploy .NET apps to ARM single-board computers (SBCs) such as Raspberry Pi. author: camsoper -ms.author: casoper ms.date: 07/31/2024 ms.topic: how-to ms.service: dotnet diff --git a/docs/iot/intro.md b/docs/iot/intro.md index 53bcbc9ca9d11..823f217c51572 100644 --- a/docs/iot/intro.md +++ b/docs/iot/intro.md @@ -2,7 +2,6 @@ title: Develop apps for IoT devices with the .NET IoT Libraries description: Learn how .NET can be used to build applications for IoT devices and scenarios. author: camsoper -ms.author: casoper ms.date: 07/31/2024 ms.topic: overview --- diff --git a/docs/iot/quickstarts/sensehat.md b/docs/iot/quickstarts/sensehat.md index 6d757b4b8bfec..62245f6d7cbc2 100644 --- a/docs/iot/quickstarts/sensehat.md +++ b/docs/iot/quickstarts/sensehat.md @@ -2,7 +2,6 @@ title: Quickstart - Use .NET to drive a Raspberry Pi Sense HAT description: Get started with .NET IoT Libraries in 5 minutes using a Sense HAT, an add-on board for Raspberry Pi. author: camsoper -ms.author: casoper ms.date: 07/31/2024 ms.topic: quickstart --- diff --git a/docs/iot/tutorials/adc.md b/docs/iot/tutorials/adc.md index 19e4430181310..9d9cbb20dab82 100644 --- a/docs/iot/tutorials/adc.md +++ b/docs/iot/tutorials/adc.md @@ -2,7 +2,6 @@ title: Read values from an analog-to-digital converter description: Learn how to read variable voltage values using an analog-to-digital converter. author: camsoper -ms.author: casoper ms.date: 07/31/2024 ms.topic: tutorial --- diff --git a/docs/iot/tutorials/blink-led.md b/docs/iot/tutorials/blink-led.md index 2e835ee8158f5..d35cb15c66099 100644 --- a/docs/iot/tutorials/blink-led.md +++ b/docs/iot/tutorials/blink-led.md @@ -2,7 +2,6 @@ title: Blink an LED description: Learn how to blink an LED with the .NET IoT Libraries. author: camsoper -ms.author: casoper ms.date: 07/31/2024 ms.topic: tutorial --- diff --git a/docs/iot/tutorials/gpio-input.md b/docs/iot/tutorials/gpio-input.md index 23318dafc4a67..76720e5236698 100644 --- a/docs/iot/tutorials/gpio-input.md +++ b/docs/iot/tutorials/gpio-input.md @@ -2,7 +2,6 @@ title: Use GPIO for binary input description: Learn how to use GPIO for binary input with the .NET IoT Libraries. author: camsoper -ms.author: casoper ms.date: 07/31/2024 ms.topic: tutorial --- diff --git a/docs/iot/tutorials/lcd-display.md b/docs/iot/tutorials/lcd-display.md index 98ece86f86624..0ab2db9cf2434 100644 --- a/docs/iot/tutorials/lcd-display.md +++ b/docs/iot/tutorials/lcd-display.md @@ -2,7 +2,6 @@ title: Display text on an LCD description: Learn how to display characters on a liquid crystal display with the .NET IoT Libraries. author: camsoper -ms.author: casoper ms.date: 07/31/2024 ms.topic: tutorial --- diff --git a/docs/iot/tutorials/temp-sensor.md b/docs/iot/tutorials/temp-sensor.md index 993aca56f2f1d..1faf7f539cb2a 100644 --- a/docs/iot/tutorials/temp-sensor.md +++ b/docs/iot/tutorials/temp-sensor.md @@ -2,7 +2,6 @@ title: Read environmental conditions from a sensor description: Learn how to read temperature, barometric pressure, and humidity with the .NET IoT Libraries. author: camsoper -ms.author: casoper ms.date: 07/31/2024 ms.topic: tutorial --- diff --git a/docs/iot/usb.md b/docs/iot/usb.md index cc688f55528c0..b488c2f8daca1 100644 --- a/docs/iot/usb.md +++ b/docs/iot/usb.md @@ -2,7 +2,6 @@ title: Use .NET IoT Libraries on Windows, Linux, and macOS computers description: Learn how to develop GPIO, I2C, and SPI code with .NET on PCs. author: camsoper -ms.author: casoper ms.date: 07/31/2024 ms.topic: how-to ms.custom: linux-related-content diff --git a/docs/orleans/deployment/snippets/service-fabric/stateless/Orleans.ServiceFabric.Stateless.csproj b/docs/orleans/deployment/snippets/service-fabric/stateless/Orleans.ServiceFabric.Stateless.csproj index c620ee0bb1275..c865c0be6e23d 100644 --- a/docs/orleans/deployment/snippets/service-fabric/stateless/Orleans.ServiceFabric.Stateless.csproj +++ b/docs/orleans/deployment/snippets/service-fabric/stateless/Orleans.ServiceFabric.Stateless.csproj @@ -13,7 +13,7 @@ - + diff --git a/docs/standard/io/buffers.md b/docs/standard/io/buffers.md index b97caf81c4c7e..f0005ed49af67 100644 --- a/docs/standard/io/buffers.md +++ b/docs/standard/io/buffers.md @@ -6,7 +6,6 @@ helpviewer_keywords: - "buffers [.NET]" - "I/O [.NET], buffers" author: rick-anderson -ms.author: riande --- # Work with Buffers in .NET diff --git a/docs/standard/io/pipelines.md b/docs/standard/io/pipelines.md index f0e531049d58a..26ee520ba4804 100644 --- a/docs/standard/io/pipelines.md +++ b/docs/standard/io/pipelines.md @@ -7,7 +7,6 @@ helpviewer_keywords: - "Pipelines I/O" - "I/O [.NET], Pipelines" author: rick-anderson -ms.author: riande --- # System.IO.Pipelines in .NET diff --git a/docs/standard/native-interop/custom-marshalling-source-generation.md b/docs/standard/native-interop/custom-marshalling-source-generation.md index aece9c32ef2f4..c593ebb97e88c 100644 --- a/docs/standard/native-interop/custom-marshalling-source-generation.md +++ b/docs/standard/native-interop/custom-marshalling-source-generation.md @@ -45,20 +45,34 @@ public struct Example } ``` -`ExampleMarshaller`, the entry-point marshaller type, is marked with , pointing at a [marshaller implementation](#marshaller-implementation) type. In this example, `ExampleMarshaller` is both the entry point and the implementation. It conforms to [marshaller shapes][value_shapes] expected for custom marshalling of a value. +`ExampleMarshaller`, the entry-point marshaller type, is marked with , pointing at a [marshaller implementation](#marshaller-implementation) type. In this example, `ExampleMarshaller` is both the entry point and the implementation. It conforms to [marshaller shapes][value_shapes] expected for custom marshalling of a value. Note that `ExampleMarshaller` assumes UTF-8 string encoding. ```csharp [CustomMarshaller(typeof(Example), MarshalMode.Default, typeof(ExampleMarshaller))] -internal static class ExampleMarshaller +internal static unsafe class ExampleMarshaller { public static ExampleUnmanaged ConvertToUnmanaged(Example managed) - => throw new NotImplementedException(); + { + return new ExampleUnmanaged() + { + Message = (IntPtr)Utf8StringMarshaller.ConvertToUnmanaged(managed.Message), + Flags = managed.Flags + }; + } public static Example ConvertToManaged(ExampleUnmanaged unmanaged) - => throw new NotImplementedException(); + { + return new Example() + { + Message = Utf8StringMarshaller.ConvertToManaged((byte*)unmanaged.Message), + Flags = unmanaged.Flags + }; + } public static void Free(ExampleUnmanaged unmanaged) - => throw new NotImplementedException(); + { + Utf8StringMarshaller.Free((byte*)unmanaged.Message); + } internal struct ExampleUnmanaged { @@ -89,7 +103,7 @@ internal static partial Example ConvertExample(Example example); Apply the to a marshaller entry-point type to indicate that it's for contiguous collections. The type must have one more type parameter than the associated managed type. The last type parameter is a placeholder and will be filled in by the source generator with the unmanaged type for the collection's element type. -For example, you can specify custom marshalling for a . In the following code, `ListMarshaller` is both the entry point and the implementation. It conforms to [marshaller shapes][collection_shapes] expected for custom marshalling of a collection. +For example, you can specify custom marshalling for a . In the following code, `ListMarshaller` is both the entry point and the implementation. It conforms to [marshaller shapes][collection_shapes] expected for custom marshalling of a collection. Note that it is an incomplete example. ```csharp [ContiguousCollectionMarshaller] @@ -97,25 +111,29 @@ For example, you can specify custom marshalling for a where TUnmanagedElement : unmanaged { public static byte* AllocateContainerForUnmanagedElements(List managed, out int numElements) - => throw new NotImplementedException(); + { + numElements = managed.Count; + nuint collectionSizeInBytes = managed.Count * /* size of T */; + return (byte*)NativeMemory.Alloc(collectionSizeInBytes); + } public static ReadOnlySpan GetManagedValuesSource(List managed) - => throw new NotImplementedException(); + => CollectionsMarshal.AsSpan(managed); public static Span GetUnmanagedValuesDestination(byte* unmanaged, int numElements) - => throw new NotImplementedException(); + => new Span((TUnmanagedElement*)unmanaged, numElements); public static List AllocateContainerForManagedElements(byte* unmanaged, int length) - => throw new NotImplementedException(); + => new List(length); public static Span GetManagedValuesDestination(List managed) - => throw new NotImplementedException(); + => CollectionsMarshal.AsSpan(managed); public static ReadOnlySpan GetUnmanagedValuesSource(byte* nativeValue, int numElements) - => throw new NotImplementedException(); + => new ReadOnlySpan((TUnmanagedElement*)nativeValue, numElements); public static void Free(byte* unmanaged) - => throw new NotImplementedException(); + => NativeMemory.Free(unmanaged); } ``` diff --git a/docs/standard/security/fips-compliance.md b/docs/standard/security/fips-compliance.md index 68e5c0960edf4..527af9a2d365f 100644 --- a/docs/standard/security/fips-compliance.md +++ b/docs/standard/security/fips-compliance.md @@ -2,8 +2,7 @@ title: FIPS compliance - .NET Core description: Explains .NET Core Federal Information Processing Standard (FIPS) compliance. ms.date: 11/20/2019 -author: "Rick-Anderson" -ms.author: "riande" +author: Rick-Anderson --- # .NET Core Federal Information Processing Standard (FIPS) compliance diff --git a/samples/snippets/core/testing/unit-testing-best-practices/csharp/after/unit-testing-best-practices-after.csproj b/samples/snippets/core/testing/unit-testing-best-practices/csharp/after/unit-testing-best-practices-after.csproj index e46e61f3f04a8..92fc0397a4b7b 100644 --- a/samples/snippets/core/testing/unit-testing-best-practices/csharp/after/unit-testing-best-practices-after.csproj +++ b/samples/snippets/core/testing/unit-testing-best-practices/csharp/after/unit-testing-best-practices-after.csproj @@ -8,7 +8,7 @@ - + diff --git a/samples/snippets/core/testing/unit-testing-best-practices/csharp/before/unit-testing-best-practices-before.csproj b/samples/snippets/core/testing/unit-testing-best-practices/csharp/before/unit-testing-best-practices-before.csproj index e46e61f3f04a8..92fc0397a4b7b 100644 --- a/samples/snippets/core/testing/unit-testing-best-practices/csharp/before/unit-testing-best-practices-before.csproj +++ b/samples/snippets/core/testing/unit-testing-best-practices/csharp/before/unit-testing-best-practices-before.csproj @@ -8,7 +8,7 @@ - + diff --git a/samples/snippets/core/testing/unit-testing-using-dotnet-test/csharp/PrimeService.Tests/PrimeService.Tests.csproj b/samples/snippets/core/testing/unit-testing-using-dotnet-test/csharp/PrimeService.Tests/PrimeService.Tests.csproj index ee7e337e9f72d..a4da03fd25841 100644 --- a/samples/snippets/core/testing/unit-testing-using-dotnet-test/csharp/PrimeService.Tests/PrimeService.Tests.csproj +++ b/samples/snippets/core/testing/unit-testing-using-dotnet-test/csharp/PrimeService.Tests/PrimeService.Tests.csproj @@ -7,7 +7,7 @@ - + diff --git a/samples/snippets/core/testing/unit-testing-vb-mstest/vb/PrimeService.Tests/PrimeService.Tests.vbproj b/samples/snippets/core/testing/unit-testing-vb-mstest/vb/PrimeService.Tests/PrimeService.Tests.vbproj index c44941640dfe6..a541ae207297c 100644 --- a/samples/snippets/core/testing/unit-testing-vb-mstest/vb/PrimeService.Tests/PrimeService.Tests.vbproj +++ b/samples/snippets/core/testing/unit-testing-vb-mstest/vb/PrimeService.Tests/PrimeService.Tests.vbproj @@ -7,9 +7,9 @@ - - - + + + diff --git a/samples/snippets/csharp/roslyn-sdk/SyntaxQuickStart/HelloSyntaxTree/HelloSyntaxTree.csproj b/samples/snippets/csharp/roslyn-sdk/SyntaxQuickStart/HelloSyntaxTree/HelloSyntaxTree.csproj index ab3f2ea9bdb5d..c474067616ce3 100644 --- a/samples/snippets/csharp/roslyn-sdk/SyntaxQuickStart/HelloSyntaxTree/HelloSyntaxTree.csproj +++ b/samples/snippets/csharp/roslyn-sdk/SyntaxQuickStart/HelloSyntaxTree/HelloSyntaxTree.csproj @@ -7,7 +7,7 @@ - + diff --git a/samples/snippets/csharp/roslyn-sdk/SyntaxQuickStart/SyntaxWalker/SyntaxWalker.csproj b/samples/snippets/csharp/roslyn-sdk/SyntaxQuickStart/SyntaxWalker/SyntaxWalker.csproj index ab3f2ea9bdb5d..c474067616ce3 100644 --- a/samples/snippets/csharp/roslyn-sdk/SyntaxQuickStart/SyntaxWalker/SyntaxWalker.csproj +++ b/samples/snippets/csharp/roslyn-sdk/SyntaxQuickStart/SyntaxWalker/SyntaxWalker.csproj @@ -7,7 +7,7 @@ - +