From 80d6a88f59d67e931f0bdadb6f5ccbbbc659b8ac Mon Sep 17 00:00:00 2001 From: "Andy De George (from Dev Box)" Date: Thu, 19 Mar 2026 15:33:32 -0700 Subject: [PATCH 1/7] Update the upgrade assistant install article --- .../upgrade-assistant-install/enable.png | Bin 0 -> 53305 bytes .../install-prompt.png | Bin 14051 -> 0 bytes .../visual-studio-manage-extensions.png | Bin 36331 -> 0 bytes .../core/porting/upgrade-assistant-install.md | 43 +- docs/core/porting/upgrade-assistant-wcf.md | 574 ------------------ 5 files changed, 16 insertions(+), 601 deletions(-) create mode 100644 docs/core/porting/media/upgrade-assistant-install/enable.png delete mode 100644 docs/core/porting/media/upgrade-assistant-install/install-prompt.png delete mode 100644 docs/core/porting/media/upgrade-assistant-install/visual-studio-manage-extensions.png delete mode 100644 docs/core/porting/upgrade-assistant-wcf.md diff --git a/docs/core/porting/media/upgrade-assistant-install/enable.png b/docs/core/porting/media/upgrade-assistant-install/enable.png new file mode 100644 index 0000000000000000000000000000000000000000..3ceb503a1edd0f664718c6fdedd69f04957f5313 GIT binary patch literal 53305 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�+Iv&5Q94C+J;PDQRGc`Dm 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 diff --git a/docs/core/porting/media/upgrade-assistant-install/visual-studio-manage-extensions.png b/docs/core/porting/media/upgrade-assistant-install/visual-studio-manage-extensions.png deleted file mode 100644 index 8c76bd55c3b48350c6059222ca5d509c65043c6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 36331 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 dBFbOD{{#O+;H [!TIP] -> As an alternative to using the **Manage Extensions** feature of Visual Studio, you can download and run the extensions installer from the [Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.upgradeassistant). +The following steps enable the legacy Upgrade Assistant in Visual Studio. 01. Open Visual Studio. If the **Open Recent \ Get Started** window opens, select the **Continue without code** link. -01. Select the **Extensions** > **Manage Extensions** menu to open the **Extension Manager** window. -01. Select the **Browse** tab. -01. Type **.NET upgrade assistant** into the search box. -01. Select the **.NET Upgrade Assistant** item, and then select **Install**. - - :::image type="content" source="media/upgrade-assistant-install/visual-studio-manage-extensions.png" alt-text="The manage extensions window in Visual Studio, showing the .NET Upgrade Assistant."::: - -01. Once the extension finishes downloading, close Visual Studio to automatically start the installation. +01. Select the **Tools** > **Options** menu, which opens the **Options** window.\ +01. Navigate to **All Settings** > **Projects and Solutions** > **Modernization**. +01. Select the **Enable legacy Upgrade Assistant** item. +01. Restart Visual Studio - :::image type="content" source="media/upgrade-assistant-install/install-prompt.png" alt-text="A prompt to install the .NET Upgrade Assistant extension."::: - -01. Select **Modify** and follow the instructions to install the extension. + :::image type="content" source="media/upgrade-assistant-install/enable.png" alt-text="A screen shot showing the options window in Visual Studio with the Modernization settings page open."::: ## .NET Global Tool @@ -76,11 +67,9 @@ The following steps install .NET Upgrade Assistant as a .NET Global Tool. .NET U The following information helps you determine that .NET Upgrade Assistant is installed. -- **Visual Studio Extension** - - There are two ways to determine if .NET Upgrade Assistant is installed as a Visual Studio extension. The quickest way is to right-click on any .NET or .NET Framework project in the **Solution Explorer** window and check for an **Upgrade** menu item. +- **Visual Studio** - Another way is to select the **Extensions** > **Manage Extensions** menu to open the **Extension Manager** window. Then, select the **Installed** tab and find it in the list of installed extensions. + To determine if .NET Upgrade Assistant is enabled, right-click on any .NET or .NET Framework project in the **Solution Explorer** window and check for an **Upgrade** menu item. - **.NET Global Tool** diff --git a/docs/core/porting/upgrade-assistant-wcf.md b/docs/core/porting/upgrade-assistant-wcf.md deleted file mode 100644 index 5a6d5f75b6422..0000000000000 --- a/docs/core/porting/upgrade-assistant-wcf.md +++ /dev/null @@ -1,574 +0,0 @@ ---- -title: Upgrade WCF Server-side Project to CoreWCF -description: Use .NET Upgrade Assistant to upgrade an existing WCF Server-side project on .NET Framework to use CoreWCF services on .NET 6 or later. -author: SimonaLiao -ms.date: 10/08/2024 - ---- - -# Upgrade a WCF Server-side Project to CoreWCF - -The .NET Upgrade Assistant is a command-line tool that can assist with upgrading an existing WCF Server-side project on .NET Framework to use CoreWCF services on .NET 6. This article provides: - -- Things to know before starting. -- A demonstration of how to run the tool against a WCF Server-side project on .NET Framework. -- Troubleshooting tips. - -[!INCLUDE [github-copilot-suggestion](includes/github-copilot-suggestion.md)] - -## Things to know before starting - -This tool currently supports C# projects and uses [CoreWCF](https://github.com/corewcf/corewcf) to port self-hosted WCF Server-side projects to .NET 6. - -> [!IMPORTANT] -> Upgrading WCF projects requires a legacy version of .NET Upgrade Assistant and isn't compatible with the latest versions. Instructions on how to install the legacy version are provided in the [Install the legacy version](#install-the-legacy-version) section. - -For a WCF project to be applicable for this upgrade, it must meet the following requirements: - -1. Includes a .cs file that references `System.ServiceModel` and creates new `ServiceHost`. - - If the WCF project has multiple `ServiceHost`, all hosts need to be created in the same method. - -1. Includes a .config file that stores `System.ServiceModel` properties. - -The current version of the tool does not support WCF projects hosted via .svc files. - -> [!NOTE] -> If your project is not applicable for this tool, we recommend you take a look at the [CoreWCF walkthrough guide](https://github.com/CoreWCF/CoreWCF/blob/main/Documentation/Walkthrough.md) and -[BeanTrader Sample demo](https://devblogs.microsoft.com/dotnet/upgrading-a-wcf-service-to-dotnet-6/) and manually update the project. - -## Prerequisites - -- Windows Operating System -- [Visual Studio 2022 or later](https://visualstudio.microsoft.com/downloads/). -- [.NET SDK 6 or later](https://dotnet.microsoft.com/download/dotnet/). -- Version `0.4.421302` of .NET Upgrade Assistant, known as the "legacy" version. - -### Install the legacy version - -Use the `dotnet` command to install version `0.4.421302` of .NET Upgrade Assistant. - -```dotnetcli -dotnet tool install upgrade-assistant -g --version 0.4.421302 -``` - -> [!IMPORTANT] -> If you configured extra NuGet feed sources, the install might fail with an error indicating that the NuGet package isn't available in the feed. Use the `--ignore-failed-sources` parameter to treat those failures as warnings instead of errors, bypassing the other NuGet feed sources: -> -> ```dotnetcli -> dotnet tool install upgrade-assistant -g --ignore-failed-sources --version 0.4.421302 -> ``` - -## Demo app - -You can use the [Basic Calculator Sample][wcf-sample] project to test upgrading with the Upgrade Assistant, which is also the demo used in this documentation. - -If you want to try out a more complicated sample, see the [BeanTrader sample](https://github.com/dotnet/windows-desktop/tree/main/Samples/BeanTrader) created by Mike Rousos. - -## Run upgrade-assistant - -Open a terminal and navigate to the folder where the target project or solution is located. Run the `upgrade-assistant upgrade` command, passing in the name of the project or solution you're upgrading. - -When a project is provided, the upgrade process starts on that project immediately. If a solution is provided, you'll select which project you normally run, known as the upgrade entry point. Based on that project, a dependency graph is created and a suggestion as to which order you should upgrade the projects is provided. - -```console -upgrade-assistant upgrade .\CalculatorSample.sln -``` - -The tool runs and shows you a list of the steps it will perform. As each step is completed, the tool provides a set of commands allowing the user to apply or skip the next step or some other option such as: - -- Get more information about the step. -- Change projects. -- Adjust logging settings. -- Stop the upgrade and quit. - -Pressing Enter without choosing a number selects the first item in the list. - -As each step initializes, it may provide information about what it thinks will happen if you apply the step. - -### Select the entry point and project to upgrade - -The first step in upgrading the [Basic Calculator Sample][wcf-sample] is choosing which project in the solution serves as the entry-point project. - -```output -Upgrade Steps - -1. [Next step] Select an entrypoint -2. Select project to upgrade - -Choose a command: - 1. Apply next step (Select an entrypoint) - 2. Skip next step (Select an entrypoint) - 3. See more step details - 4. Configure logging - 5. Exit -``` - -Choose **command 1** to start that step. The results are displayed: - -```output -[10:25:42 INF] Applying upgrade step Select an entrypoint -Please select the project you run. We will then analyze the dependencies and identify the recommended order to upgrade projects. - 1. CalculatorClient - 2. CalculatorService -``` - -There are two projects listed. Because our tool upgrades the server-side project, we will choose **command 2** to select the service project as the entry point. - -### Upgrade the project - -Once a project is selected, a list of upgrade steps the tool will take is listed. - -> [!IMPORTANT] -> Based on the project you're upgrading, you may or may not see every step listed in this example. - -The following output describes the steps involved in upgrading the project: - -```output -Upgrade Steps - -Entrypoint: C:\Users\Desktop\CalculatorSample\CalculatorService\CalculatorService.csproj -Current Project: C:\Users\Desktop\CalculatorSample\CalculatorService\CalculatorService.csproj - -1. [Next step] Back up project -2. Convert project file to SDK style -3. Clean up NuGet package references - a. Duplicate reference analyzer - b. Package map reference analyzer - c. Target compatibility reference analyzer - d. Upgrade assistant reference analyzer - e. Windows Compatibility Pack Analyzer - f. MyDotAnalyzer reference analyzer - g. Newtonsoft.Json reference analyzer - h. Windows App SDK package analysis - i. Transitive reference analyzer -4. Update TFM -5. Update NuGet Packages - a. Duplicate reference analyzer - b. Package map reference analyzer - c. Target compatibility reference analyzer - d. Upgrade assistant reference analyzer - e. Windows Compatibility Pack Analyzer - f. MyDotAnalyzer reference analyzer - g. Newtonsoft.Json reference analyzer - h. Windows App SDK package analysis - i. Transitive reference analyzer -6. Add template files -7. Update WCF service to CoreWCF (Preview) -8. Upgrade app config files - a. Convert Application Settings - b. Convert Connection Strings - c. Disable unsupported configuration sections -9. Update source code - a. Apply fix for UA0002: Types should be upgraded - b. Apply fix for UA0012: 'UnsafeDeserialize()' does not exist - c. Apply fix for UA0014: .NET MAUI projects should not reference Xamarin.Forms namespaces - d. Apply fix for UA0015: .NET MAUI projects should not reference Xamarin.Essentials namespaces -10. Move to next project - -Choose a command: - 1. Apply next step (Back up project) - 2. Skip next step (Back up project) - 3. See more step details - 4. Select different project - 5. Configure logging - 6. Exit -``` - -> [!NOTE] -> For the rest of this article, the upgrade steps aren't explicitly shown unless there is something important to call out. The results of each step are still shown. - -#### Create a backup - -In this example of upgrading the CalculatorService project, you'll apply each step. The first step, **command 1**, is backing up the project: - -```output -[10:25:52 INF] Applying upgrade step Back up project -Please choose a backup path - 1. Use default path [C:\Users\Desktop\CalculatorSample.backup] - 2. Enter custom path -``` - -The tool chooses a default backup path named after the current folder, but with `.backup` appended to it. You can choose a custom path as an alternative to the default path. For each upgraded project, the folder of the project is copied to the backup folder. In this example, the `CalculatorService` folder is copied from _CalculatorSample\CalculatorService_ to _CalculatorSample.backup\CalculatorService_ during the backup step: - -```output -[10:25:53 INF] Backing up C:\Users\Desktop\CalculatorSample\CalculatorService to C:\Users\OneDrive - Microsoft\Desktop\CalculatorSample.backup\CalculatorService -[10:25:53 INF] Project backed up to C:\Users\Desktop\CalculatorSample.backup\CalculatorService -[10:25:53 INF] Upgrade step Back up project applied successfully -Please press enter to continue... -``` - -#### Upgrade the project file - -The project is upgraded from the .NET Framework project format to the .NET SDK project format. - -```output -[10:25:56 INF] Applying upgrade step Convert project file to SDK style -[10:25:56 INF] Converting project file format with try-convert, version 0.4.0-dev -[10:25:56 INF] Recommending executable TFM net6.0 because the project builds to an executable -C:\Users\Desktop\CalculatorSample\CalculatorService\CalculatorService.csproj contains an App.config file. App.config is replaced by appsettings.json in .NET Core. You will need to delete App.config and migrate to appsettings.json if it's applicable to your project. -[10:25:58 INF] Converting project C:\Users\CalculatorSample\CalculatorService\CalculatorService.csproj to SDK style -[10:25:58 INF] Project file converted successfully! The project may require additional changes to build successfully against the new .NET target. -[10:26:00 INF] Upgrade step Convert project file to SDK style applied successfully -``` - -Pay attention to the output of each step. Notice that the example output indicates that you'll have a manual step to complete after the upgrade: - -> App.config is replaced by appsettings.json in .NET Core. You will need to delete App.config and migrate to appsettings.json if it's applicable to your project. - -In this sample, the WCF update step will create a new _wcf.config_ based on the `system.serviceModel` section in _App.config_. We won't need to migrate to appsettings.json. - -#### Clean up NuGet references - -Once the project format has been updated, the next step is to clean up the NuGet package references. - -In addition to the packages referenced by your app, the _packages.config_ file contains references to the dependencies of those packages. For example, if you added reference to package **A** which depends on package **B**, both packages would be referenced in the _packages.config_ file. In the new project system, only the reference to package **A** is required. This step analyzes the package references and removes those that aren't required. - -```output -[10:26:01 INF] Initializing upgrade step Clean up NuGet package references -[10:26:01 INF] Initializing upgrade step Duplicate reference analyzer -[10:26:01 INF] No package updates needed -[10:26:01 INF] Initializing upgrade step Package map reference analyzer -[10:26:01 INF] Marking assembly reference System.configuration for removal based on package mapping configuration System.Configuration -[10:26:01 INF] Adding package System.Configuration.ConfigurationManager based on package mapping configuration System.Configuration -[10:26:01 INF] Marking assembly reference System.ServiceModel for removal based on package mapping configuration System.ServiceModel -[10:26:01 INF] Adding package System.ServiceModel.Primitives based on package mapping configuration System.ServiceModel -[10:26:01 INF] Adding package System.ServiceModel.Http based on package mapping configuration System.ServiceModel -[10:26:01 INF] Adding package System.ServiceModel.Duplex based on package mapping configuration System.ServiceModel -[10:26:01 INF] Adding package System.ServiceModel.NetTcp based on package mapping configuration System.ServiceModel -[10:26:01 INF] Adding package System.ServiceModel.Security based on package mapping configuration System.ServiceModel -[10:26:01 INF] Adding package System.ServiceModel.Federation based on package mapping configuration System.ServiceModel - -[10:26:01 INF] Initializing upgrade step Remove reference 'System.configuration' -[10:26:03 INF] Applying upgrade step Remove reference 'System.configuration' -[10:26:03 INF] Removing outdated assembly reference: System.configuration -[10:26:03 INF] Upgrade step Remove reference 'System.configuration' applied successfully - -[10:26:05 INF] Initializing upgrade step Remove reference 'System.ServiceModel' -[10:26:06 INF] Applying upgrade step Remove reference 'System.ServiceModel' -[10:26:06 INF] Removing outdated assembly reference: System.ServiceModel -[10:26:06 INF] Upgrade step Remove reference 'System.ServiceModel' applied successfully - -[10:26:07 INF] Initializing upgrade step Add package 'System.Configuration.ConfigurationManager' -[10:26:09 INF] Applying upgrade step Add package 'System.Configuration.ConfigurationManager' -[10:26:09 INF] Adding package reference: System.Configuration.ConfigurationManager, Version=5.0.0 -[10:26:09 INF] Upgrade step Add package 'System.Configuration.ConfigurationManager' applied successfully -[10:26:09 INF] Applying upgrade step Package map reference analyzer -[10:26:09 INF] Upgrade step Package map reference analyzer applied successfully - -[10:26:10 INF] Initializing upgrade step Target compatibility reference analyzer -[10:26:10 INF] No package updates needed -[10:26:10 INF] Initializing upgrade step Upgrade assistant reference analyzer -[10:26:11 INF] Reference to .NET Upgrade Assistant analyzer package (Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers, version 0.4.336902) needs to be added -[10:26:11 INF] Initializing upgrade step Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers' -[10:26:13 INF] Applying upgrade step Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers' -[10:26:13 INF] Adding package reference: Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers, Version=0.4.336902 -[10:26:13 INF] Upgrade step Add package 'Microsoft.DotNet.UpgradeAssistant.Extensions.Default.Analyzers' applied successfully -[10:26:13 INF] Applying upgrade step Upgrade assistant reference analyzer -[10:26:14 INF] Upgrade step Upgrade assistant reference analyzer applied successfully - -[10:26:15 INF] Initializing upgrade step Windows Compatibility Pack Analyzer -[10:26:15 INF] No package updates needed -[10:26:15 INF] Initializing upgrade step MyDotAnalyzer reference analyzer -[10:26:15 INF] No package updates needed -[10:26:15 INF] Initializing upgrade step Newtonsoft.Json reference analyzer -[10:26:15 INF] No package updates needed -[10:26:15 INF] Initializing upgrade step Windows App SDK package analysis -[10:26:15 INF] No package updates needed -[10:26:15 INF] Initializing upgrade step Transitive reference analyzer -[10:26:15 INF] No package updates needed -[10:26:15 INF] Applying upgrade step Clean up NuGet package references -[10:26:15 INF] Upgrade step Clean up NuGet package references applied successfully -``` - -Your app is still referencing .NET Framework assemblies. Some of those assemblies may be available as NuGet packages. This step analyzes those assemblies and references the appropriate NuGet package. - -In this example, the package updater detects the CalculatorService as a server-only project and there is no need to add `System.ServiceModel` packages. Even though they were added to the list based on package mapping configuration, those steps were not applied. - -#### Handle the TFM - -The tool next changes the [TFM](../../standard/frameworks.md) from .NET Framework to the suggested SDK. In this example, it's `net6.0-windows`. - -```output -[10:26:17 INF] Applying upgrade step Update TFM -[10:26:17 INF] Recommending executable TFM net6.0 because the project builds to an executable -[10:26:19 INF] Updated TFM to net6.0 -[10:26:19 INF] Upgrade step Update TFM applied successfully -``` - -#### Upgrade NuGet packages - -Next, the tool updates the project's NuGet packages to the versions that support the updated TFM, `net6.0-windows`. - -```output -[10:26:20 INF] Initializing upgrade step Update NuGet Packages -[10:26:20 INF] Initializing upgrade step Duplicate reference analyzer -[10:26:20 INF] No package updates needed -[10:26:20 INF] Initializing upgrade step Package map reference analyzer -[10:26:20 INF] No package updates needed -[10:26:20 INF] Initializing upgrade step Target compatibility reference analyzer -[10:26:20 INF] No package updates needed -[10:26:20 INF] Initializing upgrade step Upgrade assistant reference analyzer -[10:26:20 INF] No package updates needed -[10:26:20 INF] Initializing upgrade step Windows Compatibility Pack Analyzer -[10:26:20 INF] No package updates needed -[10:26:20 INF] Initializing upgrade step MyDotAnalyzer reference analyzer -[10:26:20 INF] No package updates needed -[10:26:20 INF] Initializing upgrade step Newtonsoft.Json reference analyzer -[10:26:20 INF] No package updates needed -[10:26:20 INF] Initializing upgrade step Windows App SDK package analysis -[10:26:20 INF] No package updates needed -[10:26:20 INF] Initializing upgrade step Transitive reference analyzer -[10:26:20 INF] No package updates needed -[10:26:20 INF] Applying upgrade step Update NuGet Packages -[10:26:20 INF] Upgrade step Update NuGet Packages applied successfully -``` - -#### Add template files - -Once the packages are updated, the next step is to update any template files. In this example, there are no template files that need to be updated or added to the project. This step is skipped and the next step is automatically started. - -```output -[10:26:20 INF] Initializing upgrade step Add template files -[10:26:20 INF] 0 expected template items needed -``` - -#### Update WCF service to CoreWCF (Preview) - -> Note: At the time this documentation was written, the WCF updater extension is supplied as a Preview release. If you have any feedback for the Preview version, please open an issue in the [Upgrade Assistant GitHub repository](https://github.com/dotnet/upgrade-assistant/issues) with `area:WCF` tag. - -The upgrade assistant will first initialize the WCF Updater step and check if the project is applicable for WCF update. - -```output -[10:26:20 INF] Initializing upgrade step Update WCF service to CoreWCF (Preview) -[10:26:20 INF] This config file is applicable for upgrade: C:\Users\Desktop\CalculatorSample\CalculatorService\App.config. System.serviceModel/services elements were found. -[10:26:20 INF] This file is applicable for upgrade: C:\Users\Desktop\CalculatorSample\CalculatorService\service.cs. ServiceHost object was found. -[10:26:20 INF] This project file is applicable for upgrade: C:\Users\Desktop\CalculatorSample\CalculatorService\CalculatorService.csproj. Reference to System.serviceModel was found. -[10:26:20 INF] This project is applicable for updating to CoreWCF. Initializing the update step... -[10:26:20 INF] Updaters are successfully constructed. Ready to start update. - -Choose a command: - 1. Apply next step (Update WCF service to CoreWCF (Preview)) - 2. Skip next step (Update WCF service to CoreWCF (Preview)) - 3. See more step details - 4. Select different project - 5. Configure logging - 6. Exit -``` - -The step checks the configuration file, source code, and project file separately to decide if the project is applicable for WCF update. If the project is not applicable (such as not using WCF, or not meeting the requirements stated at the beginning of the article), the logging message would describe which file was not applicable and what was missing. Then, the step would be skipped and the next step would be automatically started. - -In this sample, CalculatorSample is applicable for WCF update, and we will choose **command 1** to apply the step. - -```output -[10:26:23 INF] Applying upgrade step Update WCF service to CoreWCF (Preview) -[10:26:23 INF] Finish updating project file. -[10:26:23 WRN] The mex endpoint is removed from .config file, and service metadata behavior is configured in the source code instead. -[10:26:23 INF] Finish updating configuration files. -[10:26:23 WRN] Changing void Main() to async Task Main() to enable awaiting starting and stopping the ASP.NET Core host. -[10:26:23 INF] Finish updating source code. -[10:26:23 INF] Finish writing changes to project file. -[10:26:23 INF] Finish writing changes to configuration files. -[10:26:23 INF] Finish writing changes to the source code to replace the ServiceHost instance(s). -[10:26:23 INF] Project was successfully updated to use CoreWCF services. Please review changes. -[10:26:23 INF] Upgrade step Update WCF service to CoreWCF (Preview) applied successfully -``` - -This step creates the updates and writes them into the original files individually. Pay attention to the output, which may notify you about removal from original files or manual updates to complete after the upgrade. - -#### Config and code files update - -These steps may be skipped automatically by the tool if the tool determines there isn't anything to do for your project. - -After the WCF update is complete, the next step is to update app config files. In this example, there is not anything needs to be upgraded in the app config files. The WCF step already updated the configuration files so this step will not complain about the usage of unsupported `system.serviceModel`. This step is skipped and the next step is automatically started. - -```output -[10:26:43 INF] Initializing upgrade step Upgrade app config files -[10:26:43 INF] Found 0 app settings for upgrade: -[10:26:43 INF] Found 0 connection strings for upgrade: -[10:26:43 INF] 0 web page namespace imports need upgraded: -``` - -The final step before this project's upgrade is completed, is to update any out-of-date code references. Based on the type of project you're upgrading, a list of known code fixes is displayed for this step. Some of the fixes may not apply to your project. - -```output -9. Update source code - a. Apply fix for UA0002: Types should be upgraded - b. Apply fix for UA0012: 'UnsafeDeserialize()' does not exist - c. Apply fix for UA0014: .NET MAUI projects should not reference Xamarin.Forms namespaces - d. Apply fix for UA0015: .NET MAUI projects should not reference Xamarin.Essentials namespaces -``` - -In this case, none of the suggested fixes apply to the example project, and this step automatically completes immediately after the previous step was completed. - -```output -[10:26:44 INF] Initializing upgrade step Update source code -[10:26:44 INF] Running analyzers on CalculatorService -[10:26:48 INF] Identified 0 diagnostics in project CalculatorService -[10:26:51 INF] Initializing upgrade step Move to next project -``` - -#### Completing the upgrade - -If there are any more projects to migrate, the tool lets you select which project to upgrade next. When there are no more projects to upgrade, the tool brings you to the "Finalize upgrade" step: - -```output -1. [Next step] Finalize upgrade - -Choose a command: - 1. Apply next step (Finalize upgrade) - 2. Skip next step (Finalize upgrade) - 3. See more step details - 4. Configure logging - 5. Exit -> -[10:27:15 INF] Applying upgrade step Finalize upgrade -[10:27:15 INF] Upgrade step Finalize upgrade applied successfully -``` - -Ideally, after successfully running the tool, these changes should appear in the original files. - -In `service.cs` file, the `using System.ServiceModel` was replaced with references to CoreWCF. The `ServiceHost` instance was also removed and the service was hosted on ASP.NET Core. - -```csharp -using System; -using System.Threading.Tasks; -using CoreWCF; -using CoreWCF.Configuration; -using CoreWCF.Description; -using CoreWCF.Security; -using Microsoft.AspNetCore.Builder; -using Microsoft.AspNetCore.Hosting; -using Microsoft.Extensions.DependencyInjection; -``` - -```csharp - public static async Task Main() - { - var builder = WebApplication.CreateBuilder(); - - // Set up port (previously this was done in configuration, - // but CoreWCF requires it be done in code) - builder.WebHost.UseNetTcp(8090); - builder.WebHost.ConfigureKestrel(options => - { - options.ListenAnyIP(8080); - }); - - // Add CoreWCF services to the ASP.NET Core app's DI container - builder.Services.AddServiceModelServices() - .AddServiceModelConfigurationManagerFile("wcf.config") - .AddServiceModelMetadata() - .AddTransient(); - - var app = builder.Build(); - - // Enable getting metadata/wsdl - var serviceMetadataBehavior = app.Services.GetRequiredService(); - serviceMetadataBehavior.HttpGetEnabled = true; - serviceMetadataBehavior.HttpGetUrl = new Uri("http://localhost:8080/CalculatorSample/metadata"); - - // Configure CoreWCF endpoints in the ASP.NET Core hosts - app.UseServiceModel(serviceBuilder => - { - serviceBuilder.AddService(serviceOptions => - { - serviceOptions.DebugBehavior.IncludeExceptionDetailInFaults = true; - }); - - serviceBuilder.ConfigureServiceHostBase(serviceHost => - { - - }); - }); - - await app.StartAsync(); - Console.WriteLine("The service is ready."); - Console.WriteLine("Press to terminate service."); - Console.WriteLine(); - Console.ReadLine(); - await app.StopAsync(); - } -``` - -For the configuration files, the `system.serviceModel` section in `App.config` was moved to the new configuration file `wcf.config`, which was generated during the update. - -`App.config` - -```xml - - - - -``` - -`wcf.config` - -```xml - - - - - - - - - - - - - - - - - - -``` - -Lastly, in the project file, `CalculatorService.csproj`, the SDK was updated to `Microsoft.NET.Sdk.Web` to enable ASP.NET Core host and CoreWCF package references were added. - -```xml - - - - all - - - - - - - -``` - -Notice that in the CalculatorSample, there isn't a project-to-project dependency and the sample can run successfully after only updating the CalculatorService. But in other cases with different dependencies, you might need to update other projects in the same solution as well. - -## After upgrading - -After you upgrade your projects, you'll need to compile and test them. The upgrade assistant will do what it can, but it can't solve every incompatibility as part of the project upgrade. For example, it's possible that the .NET Framework version of your app contained library references that your project isn't actually using. You'll need to analyze each reference and determine whether or not it's required. The tool may have also added or upgraded a NuGet package reference to wrong version. - -## Troubleshooting tips - -There are several known problems that can occur when using the .NET Upgrade Assistant. In some cases, these problems are with the [try-convert tool](https://github.com/dotnet/try-convert) that the .NET Upgrade Assistant uses internally. - -[The tool's GitHub repository](https://github.com/dotnet/upgrade-assistant#troubleshooting-common-issues) has more troubleshooting tips and known issues. - -## See also - -- Blog: [Upgrading a WCF service to .NET 6 with CoreWCF](https://devblogs.microsoft.com/dotnet/upgrading-a-wcf-service-to-dotnet-6/) -- Blog: [CoreWCF 1.0 has been Released, WCF for .NET Core and .NET 5+](https://devblogs.microsoft.com/dotnet/corewcf-v1-released/) -- Docs: [Overview of the .NET Upgrade Assistant](upgrade-assistant-overview.md) - -[wcf-sample]: https://github.com/dotnet/samples/tree/main/core/porting/upgrade-assistant-wcf-framework/CalculatorSample From 3fc63eca8a6e763feff8181cf891ebe27ffae72c Mon Sep 17 00:00:00 2001 From: "Andy De George (from Dev Box)" Date: Thu, 19 Mar 2026 15:33:50 -0700 Subject: [PATCH 2/7] Fixes to the upgrade assistant support articles --- .../porting/upgrade-assistant-analyze-overview.md | 12 +----------- .../core/porting/upgrade-assistant-how-to-analyze.md | 4 ++-- .../core/porting/upgrade-assistant-how-to-upgrade.md | 4 ++-- docs/core/porting/upgrade-assistant-overview.md | 6 +++--- docs/core/porting/upgrade-assistant-telemetry.md | 2 +- 5 files changed, 9 insertions(+), 19 deletions(-) diff --git a/docs/core/porting/upgrade-assistant-analyze-overview.md b/docs/core/porting/upgrade-assistant-analyze-overview.md index 975c1a0905389..8adf38b977277 100644 --- a/docs/core/porting/upgrade-assistant-analyze-overview.md +++ b/docs/core/porting/upgrade-assistant-analyze-overview.md @@ -4,7 +4,7 @@ description: "Describes how the code analysis function of .NET Upgrade Assistant author: adegeo ms.author: adegeo ms.topic: overview -ms.date: 10/08/2024 +ms.date: 03/19/2026 #customer intent: As a developer, I need to understand what the analyze function of .NET Upgrade Assistant does. @@ -28,16 +28,6 @@ There are two types of analysis you can perform on your code: Analyzes the external binary dependencies (such as NuGet packages) for your projects. - - ## Reports A dashboard report is generated after the analysis completes. This report breaks down the results by project, file, incident, and [story points](#incident-story-points). An aggregate view is also available, to group like-issues together regardless of what project they were detected in. diff --git a/docs/core/porting/upgrade-assistant-how-to-analyze.md b/docs/core/porting/upgrade-assistant-how-to-analyze.md index 3bf3c9bd070af..7f4ba2feb9a6d 100644 --- a/docs/core/porting/upgrade-assistant-how-to-analyze.md +++ b/docs/core/porting/upgrade-assistant-how-to-analyze.md @@ -4,7 +4,7 @@ description: "Learn how to analyze one or more projects with .NET Upgrade Assist author: adegeo ms.author: adegeo ms.topic: how-to -ms.date: 10/08/2024 +ms.date: 03/19/2026 #customer intent: As a developer, I want to analyze my project before upgrading to identify any issues before performing an upgrade. @@ -18,7 +18,7 @@ This article teaches you how to perform code analysis on your projects with .NET ## Prerequisites -- For Visual Studio, see [Install .NET Upgrade Assistant - Visual Studio extension](upgrade-assistant-install.md#visual-studio-extension). +- For Visual Studio, see [Enable .NET Upgrade Assistant - Visual Studio](upgrade-assistant-install.md#visual-studio). - For the .NET Global Tool, see [Install .NET Upgrade Assistant - .NET Global Tool](upgrade-assistant-install.md#net-global-tool). ## Create a report in Visual Studio diff --git a/docs/core/porting/upgrade-assistant-how-to-upgrade.md b/docs/core/porting/upgrade-assistant-how-to-upgrade.md index 9806ecc1174c4..02711958e3680 100644 --- a/docs/core/porting/upgrade-assistant-how-to-upgrade.md +++ b/docs/core/porting/upgrade-assistant-how-to-upgrade.md @@ -4,7 +4,7 @@ description: "Learn how to upgrade one or more projects with .NET Upgrade Assist author: adegeo ms.author: adegeo ms.topic: how-to -ms.date: 10/08/2024 +ms.date: 03/19/2026 #customer intent: As a developer, I want to upgrade my project to take advantage of the latest version of .NET. @@ -20,7 +20,7 @@ Some project types have specific guidance on upgrading. For more information, se ## Prerequisites -- For Visual Studio, see [Install .NET Upgrade Assistant - Visual Studio extension](upgrade-assistant-install.md#visual-studio-extension). +- For Visual Studio, see [Enable .NET Upgrade Assistant - Visual Studio](upgrade-assistant-install.md#visual-studio). - For the .NET Global Tool, see [Install .NET Upgrade Assistant - .NET Global Tool](upgrade-assistant-install.md#net-global-tool). ## Upgrade a project in Visual Studio diff --git a/docs/core/porting/upgrade-assistant-overview.md b/docs/core/porting/upgrade-assistant-overview.md index b45bb18d48b9a..f750597f68d89 100644 --- a/docs/core/porting/upgrade-assistant-overview.md +++ b/docs/core/porting/upgrade-assistant-overview.md @@ -4,7 +4,7 @@ description: "Learn more about .NET Upgrade Assistant for .NET-related projects. author: adegeo ms.author: adegeo ms.topic: overview -ms.date: 10/08/2024 +ms.date: 03/19/2026 #customer intent: As a developer, I want to upgrade my project so that I can take advantage of the latest features. @@ -12,9 +12,9 @@ ms.date: 10/08/2024 # What is .NET Upgrade Assistant? -.NET Upgrade Assistant helps upgrade projects to newer versions of .NET and analyzes your code to spot and fix potential incompatibilities. One focus of the tool is to help upgrading a project from .NET Framework, .NET Core, or .NET, to the latest version of .NET. You use the extension or tool to upgrade entire .NET projects, or some aspect of the project, such upgrading a configuration file from an older type to a newer type. +.NET Upgrade Assistant helps upgrade projects to newer versions of .NET and analyzes your code to spot and fix potential incompatibilities. One focus of the tool is to help upgrading a project from .NET Framework, .NET Core, or .NET, to the latest version of .NET. You use .NET Upgrade Assistant to upgrade entire .NET projects, or some aspect of the project, such upgrading a configuration file from an older type to a newer type. -.NET Upgrade Assistant is distributed as a Visual Studio extension or a command-line interface (CLI) tool. +.NET Upgrade Assistant is built into Visual Studio or can be installed as a command-line interface (CLI) tool. [!INCLUDE [github-copilot-suggestion](includes/github-copilot-suggestion.md)] diff --git a/docs/core/porting/upgrade-assistant-telemetry.md b/docs/core/porting/upgrade-assistant-telemetry.md index be68747e9d2b9..70fb416e5af4d 100644 --- a/docs/core/porting/upgrade-assistant-telemetry.md +++ b/docs/core/porting/upgrade-assistant-telemetry.md @@ -2,7 +2,7 @@ title: Upgrade Assistant Telemetry description: Learn about telemetry collected by the Upgrade Assistant. author: tasou -ms.date: 05/22/2023 +ms.date: 03/19/2026 --- # Upgrade Assistant telemetry From 1b1b9a889397aa24a587e1076289febdaadd7863 Mon Sep 17 00:00:00 2001 From: "Andy De George (from Dev Box)" Date: Thu, 19 Mar 2026 15:38:40 -0700 Subject: [PATCH 3/7] Redirect WCF file --- .openpublishing.redirection.core.json | 4180 +++++++++++++------------ 1 file changed, 2092 insertions(+), 2088 deletions(-) diff --git a/.openpublishing.redirection.core.json b/.openpublishing.redirection.core.json index a480034f56d7d..009ae590b4b8c 100644 --- a/.openpublishing.redirection.core.json +++ b/.openpublishing.redirection.core.json @@ -1,2090 +1,2094 @@ { - "redirections": [ - { - "source_path_from_root": "/docs/core/about.md", - "redirect_url": "/dotnet/core/introduction" - }, - { - "source_path_from_root": "/docs/core/app-types.md", - "redirect_url": "/dotnet/core/deploying/index" - }, - { - "source_path_from_root": "/docs/core/additional-tools/uninstall-tool.md", - "redirect_url": "/dotnet/core/additional-tools/uninstall-tool-overview" - }, - { - "source_path_from_root": "/docs/core/build/distribution-packaging.md", - "redirect_url": "/dotnet/core/distribution-packaging", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/2.0-2.1.md", - "redirect_url": "/dotnet/core/compatibility/2.1", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/2.2-3.0.md", - "redirect_url": "/dotnet/core/compatibility/3.0", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/2.2-3.1.md", - "redirect_url": "/dotnet/core/compatibility/3.1" - }, - { - "source_path_from_root": "/docs/core/compatibility/3.0-3.1.md", - "redirect_url": "/dotnet/core/compatibility/3.1", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/3.0.6-3.0.7.md", - "redirect_url": "/dotnet/core/compatibility/3.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/3.0.7-3.0.8.md", - "redirect_url": "/dotnet/core/compatibility/3.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/3.0.8-3.0.9.md", - "redirect_url": "/dotnet/core/compatibility/3.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/3.0.9-3.0rc1.md", - "redirect_url": "/dotnet/core/compatibility/3.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/3.1-5.0.md", - "redirect_url": "/dotnet/core/compatibility/5.0", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/10.0.md", - "redirect_url": "/dotnet/core/compatibility/10", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/10/apidescription-client-deprecated.md", - "redirect_url": "/aspnet/core/breaking-changes/10/apidescription-client-deprecated" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/10/cookie-authentication-api-endpoints.md", - "redirect_url": "/aspnet/core/breaking-changes/10/cookie-authentication-api-endpoints" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/10/exception-handler-diagnostics-suppressed.md", - "redirect_url": "/aspnet/core/breaking-changes/10/exception-handler-diagnostics-suppressed" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/10/iactioncontextaccessor-obsolete.md", - "redirect_url": "/aspnet/core/breaking-changes/10/iactioncontextaccessor-obsolete" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/10/ipnetwork-knownnetworks-obsolete.md", - "redirect_url": "/aspnet/core/breaking-changes/10/ipnetwork-knownnetworks-obsolete" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/10/openapi-analyzers-deprecated.md", - "redirect_url": "/aspnet/core/breaking-changes/10/openapi-analyzers-deprecated" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/10/razor-runtime-compilation-obsolete.md", - "redirect_url": "/aspnet/core/breaking-changes/10/razor-runtime-compilation-obsolete" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/10/webhostbuilder-deprecated.md", - "redirect_url": "/aspnet/core/breaking-changes/10/webhostbuilder-deprecated" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/10/withopenapi-deprecated.md", - "redirect_url": "/aspnet/core/breaking-changes/10/withopenapi-deprecated" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/authentication-aad-packages-obsolete.md", - "redirect_url": "/aspnet/core/breaking-changes/5/authentication-aad-packages-obsolete" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/authorization-resource-in-endpoint-routing.md", - "redirect_url": "/aspnet/core/breaking-changes/5/authorization-resource-in-endpoint-routing" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/azure-integration-packages-removed.md", - "redirect_url": "/aspnet/core/breaking-changes/5/azure-integration-packages-removed" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/blazor-browser-support-updated.md", - "redirect_url": "/aspnet/core/breaking-changes/5/blazor-browser-support-updated" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/blazor-components-trim-insignificant-whitespace.md", - "redirect_url": "/aspnet/core/breaking-changes/5/blazor-components-trim-insignificant-whitespace" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/blazor-jsobjectreference-to-internal.md", - "redirect_url": "/aspnet/core/breaking-changes/5/blazor-jsobjectreference-to-internal" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/blazor-packages-target-framework-changed.md", - "redirect_url": "/aspnet/core/breaking-changes/5/blazor-packages-target-framework-changed" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/blazor-protectedbrowserstorage-moved.md", - "redirect_url": "/aspnet/core/breaking-changes/5/blazor-protectedbrowserstorage-moved" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/blazor-rendertreeframe-fields-become-properties.md", - "redirect_url": "/aspnet/core/breaking-changes/5/blazor-rendertreeframe-fields-become-properties" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/blazor-routing-logic-changed.md", - "redirect_url": "/aspnet/core/breaking-changes/5/blazor-routing-logic-changed" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/blazor-static-web-assets-validation-logic-updated.md", - "redirect_url": "/aspnet/core/breaking-changes/5/blazor-static-web-assets-validation-logic-updated" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/extensions-package-reference-changes.md", - "redirect_url": "/aspnet/core/breaking-changes/5/extensions-package-reference-changes" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/http-badhttprequestexception-obsolete.md", - "redirect_url": "/aspnet/core/breaking-changes/5/http-badhttprequestexception-obsolete" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/http-httpclient-instances-log-integer-status-codes.md", - "redirect_url": "/aspnet/core/breaking-changes/5/http-httpclient-instances-log-integer-status-codes" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/httpsys-client-certificate-renegotiation-disabled-by-default.md", - "redirect_url": "/aspnet/core/breaking-changes/5/httpsys-client-certificate-renegotiation-disabled-by-default" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/iis-urlrewrite-middleware-query-strings-are-preserved.md", - "redirect_url": "/aspnet/core/breaking-changes/5/iis-urlrewrite-middleware-query-strings-are-preserved" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/kestrel-configuration-changes-at-run-time-detected-by-default.md", - "redirect_url": "/aspnet/core/breaking-changes/5/kestrel-configuration-changes-at-run-time-detected-by-default" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/kestrel-default-supported-tls-protocol-versions-changed.md", - "redirect_url": "/aspnet/core/breaking-changes/5/kestrel-default-supported-tls-protocol-versions-changed" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/kestrel-disables-http2-over-tls.md", - "redirect_url": "/aspnet/core/breaking-changes/5/kestrel-disables-http2-over-tls" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/kestrel-libuv-transport-obsolete.md", - "redirect_url": "/aspnet/core/breaking-changes/5/kestrel-libuv-transport-obsolete" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/localization-members-removed.md", - "redirect_url": "/aspnet/core/breaking-changes/5/localization-members-removed" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/localization-pubternal-apis-removed.md", - "redirect_url": "/aspnet/core/breaking-changes/5/localization-pubternal-apis-removed" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/localization-requestlocalizationmiddleware-constructor-removed.md", - "redirect_url": "/aspnet/core/breaking-changes/5/localization-requestlocalizationmiddleware-constructor-removed" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/middleware-database-error-page-obsolete.md", - "redirect_url": "/aspnet/core/breaking-changes/5/middleware-database-error-page-obsolete" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/middleware-exception-handler-throws-original-exception.md", - "redirect_url": "/aspnet/core/breaking-changes/5/middleware-exception-handler-throws-original-exception" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/mvc-objectmodelvalidator-calls-new-overload.md", - "redirect_url": "/aspnet/core/breaking-changes/5/mvc-objectmodelvalidator-calls-new-overload" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/security-cookie-name-encoding-removed.md", - "redirect_url": "/aspnet/core/breaking-changes/5/security-cookie-name-encoding-removed" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/security-identitymodel-nuget-package-versions-updated.md", - "redirect_url": "/aspnet/core/breaking-changes/5/security-identitymodel-nuget-package-versions-updated" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/signalr-messagepack-hub-protocol-options-changed.md", - "redirect_url": "/aspnet/core/breaking-changes/5/signalr-messagepack-hub-protocol-options-changed" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/signalr-messagepack-package.md", - "redirect_url": "/aspnet/core/breaking-changes/5/signalr-messagepack-package" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/signalr-usesignalr-useconnections-removed.md", - "redirect_url": "/aspnet/core/breaking-changes/5/signalr-usesignalr-useconnections-removed" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/static-files-csv-content-type-changed.md", - "redirect_url": "/aspnet/core/breaking-changes/5/static-files-csv-content-type-changed" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/actionresult-statuscode.md", - "redirect_url": "/aspnet/core/breaking-changes/6/actionresult-statuscode" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/adddataannotationsvalidation-obsolete.md", - "redirect_url": "/aspnet/core/breaking-changes/6/adddataannotationsvalidation-obsolete" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/assemblies-removed-from-shared-framework.md", - "redirect_url": "/aspnet/core/breaking-changes/6/assemblies-removed-from-shared-framework" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/blazor-eventargstype-property-replaced.md", - "redirect_url": "/aspnet/core/breaking-changes/6/blazor-eventargstype-property-replaced" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/blazor-long-polling-fallback.md", - "redirect_url": "/dotnet/core/compatibility/6.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/blazor-parameter-name-changed-in-method.md", - "redirect_url": "/aspnet/core/breaking-changes/6/blazor-parameter-name-changed-in-method" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/byte-array-interop.md", - "redirect_url": "/aspnet/core/breaking-changes/6/byte-array-interop" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/clientcertificate-doesnt-trigger-renegotiation.md", - "redirect_url": "/aspnet/core/breaking-changes/6/clientcertificate-doesnt-trigger-renegotiation" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/endpointname-metadata.md", - "redirect_url": "/aspnet/core/breaking-changes/6/endpointname-metadata" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/iasyncenumerable-not-buffered-by-mvc.md", - "redirect_url": "/aspnet/core/breaking-changes/6/iasyncenumerable-not-buffered-by-mvc" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/identity-bootstrap4-to-5.md", - "redirect_url": "/aspnet/core/breaking-changes/6/identity-bootstrap4-to-5" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/kestrel-log-message-attributes-changed.md", - "redirect_url": "/aspnet/core/breaking-changes/6/kestrel-log-message-attributes-changed" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/messagepack-library-change.md", - "redirect_url": "/aspnet/core/breaking-changes/6/messagepack-library-change" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/microsoft-aspnetcore-http-features-package-split.md", - "redirect_url": "/aspnet/core/breaking-changes/6/microsoft-aspnetcore-http-features-package-split" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/middleware-ambiguous-https-ports-exception.md", - "redirect_url": "/aspnet/core/breaking-changes/6/middleware-ambiguous-https-ports-exception" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/middleware-new-use-overload.md", - "redirect_url": "/aspnet/core/breaking-changes/6/middleware-new-use-overload" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/nullable-reference-type-annotations-changed.md", - "redirect_url": "/aspnet/core/breaking-changes/6/nullable-reference-type-annotations-changed" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/obsolete-removed-apis.md", - "redirect_url": "/aspnet/core/breaking-changes/6/obsolete-removed-apis" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/preservecompilationcontext-not-set-by-default.md", - "redirect_url": "/aspnet/core/breaking-changes/6/preservecompilationcontext-not-set-by-default" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/razor-compiler-doesnt-produce-views-assembly.md", - "redirect_url": "/aspnet/core/breaking-changes/6/razor-compiler-doesnt-produce-views-assembly" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/razor-engine-apis-obsolete.md", - "redirect_url": "/aspnet/core/breaking-changes/6/razor-engine-apis-obsolete" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/razor-pages-logging-ids.md", - "redirect_url": "/aspnet/core/breaking-changes/6/razor-pages-logging-ids" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/rc1-minimal-api-renames.md", - "redirect_url": "/aspnet/core/breaking-changes/6/rc1-minimal-api-renames" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/rc2-minimal-api-renames.md", - "redirect_url": "/aspnet/core/breaking-changes/6/rc2-minimal-api-renames" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/signalr-java-client-updated.md", - "redirect_url": "/aspnet/core/breaking-changes/6/signalr-java-client-updated" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/tryparse-bindasync-validation.md", - "redirect_url": "/aspnet/core/breaking-changes/6/tryparse-bindasync-validation" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/api-controller-action-parameters-di.md", - "redirect_url": "/aspnet/core/breaking-changes/7/api-controller-action-parameters-di" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/authenticateasync-anonymous-request.md", - "redirect_url": "/aspnet/core/breaking-changes/7/authenticateasync-anonymous-request" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/default-authentication-scheme.md", - "redirect_url": "/aspnet/core/breaking-changes/7/default-authentication-scheme" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/environment-variable-precedence.md", - "redirect_url": "/aspnet/core/breaking-changes/7/environment-variable-precedence" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/fallback-file-endpoints.md", - "redirect_url": "/aspnet/core/breaking-changes/7/fallback-file-endpoints" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/https-binding-kestrel.md", - "redirect_url": "/aspnet/core/breaking-changes/7/https-binding-kestrel" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/iendpointmetadataprovider-changes.md", - "redirect_url": "/dotnet/core/compatibility/7.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/ihubclients-ihubcallerclients.md", - "redirect_url": "/aspnet/core/breaking-changes/7/ihubclients-ihubcallerclients" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/libuv-transport-dll-removed.md", - "redirect_url": "/aspnet/core/breaking-changes/7/libuv-transport-dll-removed" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/microsoft-aspnetcore-mvc-core-log-event-ids.md", - "redirect_url": "/aspnet/core/breaking-changes/7/microsoft-aspnetcore-mvc-core-log-event-ids" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/microsoft-data-sqlclient-updated-to-4-0-1.md", - "redirect_url": "/aspnet/core/breaking-changes/7/microsoft-data-sqlclient-updated-to-4-0-1" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/middleware-null-requestdelegate.md", - "redirect_url": "/aspnet/core/breaking-changes/7/middleware-null-requestdelegate" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/mvc-empty-body-model-binding.md", - "redirect_url": "/aspnet/core/breaking-changes/7/mvc-empty-body-model-binding" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/output-caching-renames.md", - "redirect_url": "/aspnet/core/breaking-changes/7/output-caching-renames" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/signalr-hub-method-parameters-di.md", - "redirect_url": "/aspnet/core/breaking-changes/7/signalr-hub-method-parameters-di" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/wasm-app-authentication.md", - "redirect_url": "/aspnet/core/breaking-changes/7/wasm-app-authentication" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/8.0/addratelimiter-requirement.md", - "redirect_url": "/aspnet/core/breaking-changes/8/addratelimiter-requirement" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/8.0/antiforgery-checks.md", - "redirect_url": "/aspnet/core/breaking-changes/8/antiforgery-checks" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/8.0/concurrencylimitermiddleware-obsolete.md", - "redirect_url": "/aspnet/core/breaking-changes/8/concurrencylimitermiddleware-obsolete" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/8.0/forwarded-headers-unknown-proxies.md", - "redirect_url": "/aspnet/core/breaking-changes/8/forwarded-headers-unknown-proxies" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/8.0/httplogging-addhttplogging-requirement.md", - "redirect_url": "/aspnet/core/breaking-changes/8/httplogging-addhttplogging-requirement" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/8.0/isystemclock-obsolete.md", - "redirect_url": "/aspnet/core/breaking-changes/8/isystemclock-obsolete" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/8.0/problemdetails-custom-converters.md", - "redirect_url": "/aspnet/core/breaking-changes/8/problemdetails-custom-converters" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/8.0/securitytoken-events.md", - "redirect_url": "/aspnet/core/breaking-changes/8/securitytoken-events" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/8.0/trimmode-full.md", - "redirect_url": "/aspnet/core/breaking-changes/8/trimmode-full" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/9.0/certificate-export.md", - "redirect_url": "/aspnet/core/breaking-changes/9/certificate-export" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/9.0/hostbuilder-validation.md", - "redirect_url": "/aspnet/core/breaking-changes/9/hostbuilder-validation" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/9.0/key-resolution.md", - "redirect_url": "/aspnet/core/breaking-changes/9/key-resolution" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/9.0/legacy-apis.md", - "redirect_url": "/aspnet/core/breaking-changes/9/legacy-apis" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnet-core/9.0/middleware-constructors.md", - "redirect_url": "/aspnet/core/breaking-changes/9/middleware-constructors" - }, - { - "source_path_from_root": "/docs/core/compatibility/aspnetcore.md", - "redirect_url": "/dotnet/core/compatibility/3.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/code-analysis.md", - "redirect_url": "/dotnet/core/compatibility/code-analysis/5.0/ca1416-platform-compatibility-analyzer" - }, - { - "source_path_from_root": "/docs/core/compatibility/core-libraries/6.0/jsonserializer-source-generator-overloads.md", - "redirect_url": "/dotnet/core/compatibility/serialization/6.0/jsonserializer-source-generator-overloads", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/core-libraries/7.0/filesystemeventargs-fullpath.md", - "redirect_url": "/dotnet/core/compatibility/7.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/core-libraries/5.0/binaryformatter-serialization-obsolete.md", - "redirect_url": "/dotnet/core/compatibility/serialization/5.0/binaryformatter-serialization-obsolete", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/core-libraries/6.0/nullable-ref-type-annotations-added.md", - "redirect_url": "/dotnet/core/compatibility/core-libraries/6.0/nullable-ref-type-annotation-changes" - }, - { - "source_path_from_root": "/docs/core/compatibility/core-libraries/6.0/xmlresolver-nullable.md", - "redirect_url": "/dotnet/core/compatibility/core-libraries/6.0/nullable-ref-type-annotation-changes" - }, - { - "source_path_from_root": "/docs/core/compatibility/core-libraries/7.0/binaryformatter-apis-produce-errors.md", - "redirect_url": "/dotnet/core/compatibility/serialization/7.0/binaryformatter-apis-produce-errors", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/core-libraries/7.0/serializationformat-binary.md", - "redirect_url": "/dotnet/core/compatibility/serialization/7.0/serializationformat-binary", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/core-libraries/8.0/indexofanyvalues-renamed.md", - "redirect_url": "/dotnet/core/compatibility/8.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/core-libraries/8.0/optimizeforreading-arg.md", - "redirect_url": "/dotnet/core/compatibility/8.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/core-libraries/10.0/ymm-embedded-rounding.md", - "redirect_url": "/dotnet/core/compatibility/10" - }, - { - "source_path_from_root": "/docs/core/compatibility/corefx.md", - "redirect_url": "/dotnet/core/compatibility/3.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/cryptography.md", - "redirect_url": "/dotnet/core/compatibility/3.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/deployment/9.0/assembly-load-directory.md", - "redirect_url": "/dotnet/core/compatibility/9.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/extensions/6.0/bind-single-elements-to-array.md", - "redirect_url": "/dotnet/core/compatibility/6.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/framework-core.md", - "redirect_url": "/dotnet/core/compatibility/fx-core" - }, - { - "source_path_from_root": "/docs/core/compatibility/globalization.md", - "redirect_url": "/dotnet/core/compatibility/3.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/index.md", - "redirect_url": "/dotnet/core/compatibility/library-change-rules", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/interop.md", - "redirect_url": "/dotnet/core/compatibility/interop/5.0/built-in-support-for-winrt-removed" - }, - { - "source_path_from_root": "/docs/core/compatibility/msbuild.md", - "redirect_url": "/dotnet/core/compatibility/3.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/msbuild/5.0/directory-packages-props-imported-by-default.md", - "redirect_url": "/dotnet/core/compatibility/sdk/5.0/directory-packages-props-imported-by-default", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/msbuild/5.0/netcoreapp3_1-preprocessor-symbol-not-defined.md", - "redirect_url": "/dotnet/core/compatibility/sdk/5.0/netcoreapp3_1-preprocessor-symbol-not-defined", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/msbuild/5.0/publishdepsfilepath-behavior-change.md", - "redirect_url": "/dotnet/core/compatibility/sdk/5.0/publishdepsfilepath-behavior-change", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/msbuild/5.0/targetframework-name-change.md", - "redirect_url": "/dotnet/core/compatibility/sdk/5.0/targetframework-name-change", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/msbuild/6.0/gettargetframeworkproperties-and-getnearesttargetframework-removed.md", - "redirect_url": "/dotnet/core/compatibility/sdk/6.0/gettargetframeworkproperties-and-getnearesttargetframework-removed", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/networking.md", - "redirect_url": "/dotnet/core/compatibility/3.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/networking/10.0/ssl-certificate-revocation-check-default.md", - "redirect_url": "/dotnet/core/compatibility/10" - }, - { - "source_path_from_root": "/docs/core/compatibility/networking/7.0/connectasync-argumentexception.md", - "redirect_url": "/dotnet/core/compatibility/7.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/sdk/6.0/implicit-namespaces.md", - "redirect_url": "/dotnet/core/compatibility/sdk/6.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/sdk/6.0/implicit-namespaces-rc1.md", - "redirect_url": "/dotnet/core/compatibility/6.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/sdk/8.0/tool-rollforward.md", - "redirect_url": "/dotnet/core/compatibility/8.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/sdk/10.0/version-requirements.md", - "redirect_url": "/dotnet/core/compatibility/10" - }, - { - "source_path_from_root": "/docs/core/compatibility/serialization.md", - "redirect_url": "/dotnet/core/compatibility/serialization/5.0/binaryformatter-deserialize-rewraps-exceptions" - }, - { - "source_path_from_root": "/docs/core/compatibility/serialization/6.0/jsonnode-dynamic-type.md", - "redirect_url": "/dotnet/core/compatibility/6.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib-obsoletions.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/obsoletions-overview", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0001.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0001", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0002.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0002", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0003.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0003", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0004.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0004", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0005.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0005", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0006.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0006", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0007.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0007", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0008.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0008", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0009.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0009", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0010.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0010", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0011.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0011", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0012.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0012", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0013.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0013", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0014.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0014", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0015.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0015", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0016.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0016", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0017.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0017", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0018.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0018", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0019.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0019", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0020.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0020", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib0001.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0001" - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib0002.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0002" - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib0003.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0003" - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib0004.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0004" - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib0005.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0005" - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib0006.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0006" - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib0007.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0007" - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib0008.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0008" - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib0009.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0009" - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib0010.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0010" - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib0011.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0011" - }, - { - "source_path_from_root": "/docs/core/compatibility/syslib0012.md", - "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0012" - }, - { - "source_path_from_root": "/docs/core/compatibility/visualbasic.md", - "redirect_url": "/dotnet/core/compatibility/3.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/windows-forms/5.0/automatically-infer-winexe-output-type.md", - "redirect_url": "/dotnet/core/compatibility/sdk/5.0/automatically-infer-winexe-output-type", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/windows-forms/5.0/sdk-and-target-framework-change.md", - "redirect_url": "/dotnet/core/compatibility/sdk/5.0/sdk-and-target-framework-change", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/compatibility/windows-forms/8.0/anchor-layout.md", - "redirect_url": "/dotnet/core/compatibility/8.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/winforms.md", - "redirect_url": "/dotnet/core/compatibility/3.0" - }, - { - "source_path_from_root": "/docs/core/compatibility/wpf.md", - "redirect_url": "/dotnet/core/compatibility/3.0" - }, - { - "source_path_from_root": "/docs/core/deploying/applications.md", - "redirect_url": "/dotnet/core/deploying/index" - }, - { - "source_path_from_root": "/docs/core/deploying/deploy-with-cli.md", - "redirect_url": "/dotnet/core/deploying/index" - }, - { - "source_path_from_root": "/docs/core/deploying/deploy-with-vs.md", - "redirect_url": "/dotnet/core/deploying/index" - }, - { - "source_path_from_root": "/docs/core/deploying/fixing-warnings.md", - "redirect_url": "/dotnet/core/deploying/trimming/fixing-warnings", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/native-aot.md", - "redirect_url": "/dotnet/core/deploying/native-aot/index", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/prepare-libraries-for-trimming.md", - "redirect_url": "/dotnet/core/deploying/trimming/prepare-libraries-for-trimming", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/reducing-dependencies.md", - "redirect_url": "/dotnet/core/tools/dependencies" - }, - { - "source_path_from_root": "/docs/core/deploying/trim-self-contained.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-self-contained", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/single-file.md", - "redirect_url": "/dotnet/core/deploying/single-file/overview", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2001.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2001", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2002.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2002", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2003.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2003", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2004.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2004", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2005.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2005", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2007.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2007", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2008.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2008", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2009.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2009", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2010.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2010", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2011.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2011", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2012.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2012", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2013.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2013", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2014.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2014", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2015.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2015", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2016.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2016", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2017.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2017", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2018.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2018", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2019.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2019", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2022.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2022", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2023.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2023", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2024.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2024", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2025.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2025", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2026.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2026", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2027.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2027", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2028.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2028", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2029.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2029", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2030.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2030", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2031.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2031", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2032.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2032", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2033.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2033", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2034.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2034", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2035.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2035", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2036.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2036", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2037.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2037", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2038.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2038", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2039.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2039", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2040.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2040", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2041.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2041", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2042.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2042", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2043.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2043", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2044.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2044", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2045.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2045", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2046.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2046", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2048.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2048", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2049.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2049", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2050.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2050", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2051.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2051", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2052.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2052", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2053.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2053", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2054.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2054", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2055.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2055", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2056.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2056", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2057.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2057", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2058.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2058", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2059.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2059", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trim-warnings/il2060.md", - "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2060", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/deploying/trimming-options.md", - "redirect_url": "/dotnet/core/deploying/trimming/trimming-options", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/diagnostics/built-in-metrics-aspnetcore.md", - "redirect_url": "/aspnet/core/log-mon/metrics/built-in" - }, - { - "source_path_from_root": "/docs/core/docker/build-docker-netcore-container.md", - "redirect_url": "/dotnet/core/docker/build-container" - }, - { - "source_path_from_root": "/docs/core/docker/building-net-docker-images.md", - "redirect_url": "/aspnet/core/host-and-deploy/docker/building-net-docker-images" - }, - { - "source_path_from_root": "/docs/core/docker/docker-basics-dotnet-core.md", - "redirect_url": "/dotnet/core/docker/build-container" - }, - { - "source_path_from_root": "/docs/core/docker/index.md", - "redirect_url": "/dotnet/core/docker/introduction" - }, - { - "source_path_from_root": "/docs/core/docker/intro-net-docker.md", - "redirect_url": "/dotnet/core/docker/introduction" - }, - { - "source_path_from_root": "/docs/core/docker/visual-studio-tools-for-docker.md", - "redirect_url": "/aspnet/core/host-and-deploy/docker/visual-studio-tools-for-docker" - }, - { - "source_path_from_root": "/docs/core/dotnet-five.md", - "redirect_url": "/dotnet/core/whats-new/dotnet-5" - }, - { - "source_path_from_root": "/docs/core/enrichment/application-metadata.md", - "redirect_url": "/dotnet/core/diagnostics/ambient-metadata/application-metadata" - }, - { - "source_path_from_root": "/docs/core/extensions/artificial-intelligence.md", - "redirect_url": "/dotnet/ai/microsoft-extensions-ai" - }, - { - "source_path_from_root": "/docs/core/extensions/culture-insensitive-string-operations.md", - "redirect_url": "/dotnet/core/extensions/performing-culture-insensitive-string-operations" - }, - { - "source_path_from_root": "/docs/core/extensions/dependency-injection.md", - "redirect_url": "/dotnet/core/extensions/dependency-injection/overview" - }, - { - "source_path_from_root": "/docs/core/extensions/dependency-injection-basics.md", - "redirect_url": "/dotnet/core/extensions/dependency-injection/basics" - }, - { - "source_path_from_root": "/docs/core/extensions/dependency-injection-guidelines.md", - "redirect_url": "/dotnet/core/extensions/dependency-injection/guidelines" - }, - { - "source_path_from_root": "/docs/core/extensions/dependency-injection-usage.md", - "redirect_url": "/dotnet/core/extensions/dependency-injection/usage" - }, - { - "source_path_from_root": "/docs/core/extensions/high-performance-logging.md", - "redirect_url": "/dotnet/core/extensions/logging/high-performance-logging" - }, - { - "source_path_from_root": "/docs/core/extensions/console-log-formatter.md", - "redirect_url": "/dotnet/core/extensions/logging/console-log-formatter" - }, - { - "source_path_from_root": "/docs/core/extensions/custom-logging-provider.md", - "redirect_url": "/dotnet/core/extensions/logging/custom-provider" - }, - { - "source_path_from_root": "/docs/core/extensions/logging-library-authors.md", - "redirect_url": "/dotnet/core/extensions/logging/library-guidance" - }, - { - "source_path_from_root": "/docs/core/extensions/log-buffering.md", - "redirect_url": "/dotnet/core/extensions/logging/log-buffering" - }, - { - "source_path_from_root": "/docs/core/extensions/log-sampling.md", - "redirect_url": "/dotnet/core/extensions/logging/log-sampling" - }, - { - "source_path_from_root": "/docs/core/extensions/logging.md", - "redirect_url": "/dotnet/core/extensions/logging/overview" - }, - { - "source_path_from_root": "/docs/core/extensions/logging-providers.md", - "redirect_url": "/dotnet/core/extensions/logging/providers" - }, - { - "source_path_from_root": "/docs/core/extensions/logger-message-generator.md", - "redirect_url": "/dotnet/core/extensions/logging/source-generation" - }, - { - "source_path_from_root": "/docs/core/getting-started.md", - "redirect_url": "/dotnet/core/get-started", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/index.yml", - "redirect_url": "/dotnet/fundamentals/" - }, - { - "source_path_from_root": "/docs/core/install/dependencies.md", - "redirect_url": "/dotnet/core/install/windows" - }, - { - "source_path_from_root": "/docs/core/install/linux-centos.md", - "redirect_url": "/dotnet/core/install/linux-rhel#where-is-centos-linux" - }, - { - "source_path_from_root": "/docs/core/install/linux-package-manager-centos7.md", - "redirect_url": "/dotnet/core/install/linux-rhel#where-is-centos-linux" - }, - { - "source_path_from_root": "/docs/core/install/linux-package-manager-centos8.md", - "redirect_url": "/dotnet/core/install/linux-rhel#where-is-centos-linux" - }, - { - "source_path_from_root": "/docs/core/install/linux-package-manager-debian10.md", - "redirect_url": "/dotnet/core/install/linux-debian" - }, - { - "source_path_from_root": "/docs/core/install/linux-package-manager-debian9.md", - "redirect_url": "/dotnet/core/install/linux-debian" - }, - { - "source_path_from_root": "/docs/core/install/linux-package-manager-fedora29.md", - "redirect_url": "/dotnet/core/install/linux-fedora" - }, - { - "source_path_from_root": "/docs/core/install/linux-package-manager-fedora30.md", - "redirect_url": "/dotnet/core/install/linux-fedora" - }, - { - "source_path_from_root": "/docs/core/install/linux-package-manager-fedora31.md", - "redirect_url": "/dotnet/core/install/linux-fedora" - }, - { - "source_path_from_root": "/docs/core/install/linux-package-manager-fedora32.md", - "redirect_url": "/dotnet/core/install/linux-fedora" - }, - { - "source_path_from_root": "/docs/core/install/linux-package-manager-opensuse15.md", - "redirect_url": "/dotnet/core/install/linux-opensuse" - }, - { - "source_path_from_root": "/docs/core/install/linux-package-manager-rhel7.md", - "redirect_url": "/dotnet/core/install/linux-rhel" - }, - { - "source_path_from_root": "/docs/core/install/linux-package-manager-rhel8.md", - "redirect_url": "/dotnet/core/install/linux-rhel" - }, - { - "source_path_from_root": "/docs/core/install/linux-package-manager-rhel81.md", - "redirect_url": "/dotnet/core/install/linux-rhel" - }, - { - "source_path_from_root": "/docs/core/install/linux-package-manager-sles12.md", - "redirect_url": "/dotnet/core/install/linux-sles" - }, - { - "source_path_from_root": "/docs/core/install/linux-package-manager-sles15.md", - "redirect_url": "/dotnet/core/install/linux-sles" - }, - { - "source_path_from_root": "/docs/core/install/linux-package-managers.md", - "redirect_url": "/dotnet/core/install/linux" - }, - { - "source_path_from_root": "/docs/core/install/linux-ubuntu.md", - "redirect_url": "/dotnet/core/install/linux-ubuntu-install" - }, - { - "source_path_from_root": "/docs/core/install/runtime.md", - "redirect_url": "/dotnet/core/install/windows" - }, - { - "source_path_from_root": "/docs/core/install/linux-snap.md", - "redirect_url": "/dotnet/core/install/linux" - }, - { - "source_path_from_root": "/docs/core/install/sdk.md", - "redirect_url": "/dotnet/core/install/windows" - }, - { - "source_path_from_root": "/docs/core/linux-prerequisites.md", - "redirect_url": "/dotnet/core/install/linux" - }, - { - "source_path_from_root": "/docs/core/macos-prerequisites.md", - "redirect_url": "/dotnet/core/install/macos#dependencies" - }, - { - "source_path_from_root": "/docs/core/migrating-from-dnx.md", - "redirect_url": "/dotnet/core/tools" - }, - { - "source_path_from_root": "/docs/core/migration/20-21.md", - "redirect_url": "/dotnet/core/compatibility/2.1" - }, - { - "source_path_from_root": "/docs/core/migration/assembly-info.md", - "redirect_url": "/dotnet/core/project-sdk/msbuild-props#assembly-attribute-properties" - }, - { - "source_path_from_root": "/docs/core/migration/from-dnx.md", - "redirect_url": "/dotnet/core/tools" - }, - { - "source_path_from_root": "/docs/core/migration/index.md", - "redirect_url": "/dotnet/core/tools/dotnet-migrate" - }, - { - "source_path_from_root": "/docs/core/packages.md", - "redirect_url": "/dotnet/core/deploying" - }, - { - "source_path_from_root": "/docs/core/porting/github-copilot-app-modernization-faq.yml", - "redirect_url": "/dotnet/core/porting/github-copilot-app-modernization/faq" - }, - { - "source_path_from_root": "/docs/core/porting/github-copilot-app-modernization-overview.md", - "redirect_url": "/dotnet/core/porting/github-copilot-app-modernization/overview" - }, - { - "source_path_from_root": "/docs/core/porting/how-to-upgrade-with-github-copilot.md", - "redirect_url": "/dotnet/core/porting/github-copilot-app-modernization/how-to-upgrade-with-github-copilot" - }, - { - "source_path_from_root": "/docs/core/porting/libraries.md", - "redirect_url": "/dotnet/core/porting/" - }, - { - "source_path_from_root": "/docs/core/porting/nuget-packages.md", - "redirect_url": "/dotnet/core/deploying" - }, - { - "source_path_from_root": "/docs/core/porting/tools.md", - "redirect_url": "/dotnet/core/porting/#tools-to-assist-porting" - }, - { - "source_path_from_root": "/docs/core/porting/upgrade-assistant-aspnetmvc.md", - "redirect_url": "/aspnet/core/migration/mvc" - }, - { - "source_path_from_root": "/docs/core/porting/upgrade-assistant-install-legacy.md", - "redirect_url": "/dotnet/core/porting/upgrade-assistant-wcf" - }, - { - "source_path_from_root": "/docs/core/porting/upgrade-assistant-uwp-framework.md", - "redirect_url": "/windows/apps/windows-app-sdk/migrate-to-windows-app-sdk/upgrade-assistant" - }, - { - "source_path_from_root": "/docs/core/porting/upgrade-assistant-winforms-framework.md", - "redirect_url": "/dotnet/desktop/winforms/migration/" - }, - { - "source_path_from_root": "/docs/core/porting/upgrade-assistant-wpf-framework.md", - "redirect_url": "/dotnet/desktop/wpf/migration/" - }, - { - "source_path_from_root": "/docs/core/porting/winforms-breaking-changes.md", - "redirect_url": "/dotnet/core/compatibility/fx-core" - }, - { - "source_path_from_root": "/docs/core/porting/winforms.md", - "redirect_url": "/dotnet/desktop/winforms/migration/" - }, - { - "source_path_from_root": "/docs/core/porting/wpf.md", - "redirect_url": "/dotnet/desktop/wpf/migration/convert-project-from-net-framework" - }, - { - "source_path_from_root": "/docs/core/preview3/deploying/index.md", - "redirect_url": "/dotnet/core/deploying/index", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/porting/github-copilot-app-modernization-install.md", - "redirect_url": "/dotnet/core/porting/github-copilot-app-modernization/overview" - }, - { - "source_path_from_root": "/docs/core/preview3/tools/csproj.md", - "redirect_url": "/dotnet/core/project-sdk/msbuild-props", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/preview3/tools/dependencies.md", - "redirect_url": "/dotnet/core/tools/dependencies", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/preview3/tools/dotnet-add-package.md", - "redirect_url": "/dotnet/core/tools/dotnet-package-add", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/preview3/tools/dotnet-add-reference.md", - "redirect_url": "/dotnet/core/tools/dotnet-reference-add", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/preview3/tools/dotnet-build.md", - "redirect_url": "/dotnet/core/tools/dotnet-build" - }, - { - "source_path_from_root": "/docs/core/preview3/tools/dotnet-clean.md", - "redirect_url": "/dotnet/core/tools/dotnet-clean", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/preview3/tools/dotnet-install-script.md", - "redirect_url": "/dotnet/core/tools/dotnet-install-script" - }, - { - "source_path_from_root": "/docs/core/preview3/tools/dotnet-list-reference.md", - "redirect_url": "/dotnet/core/tools/dotnet-reference-list", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/preview3/tools/dotnet-migrate.md", - "redirect_url": "/dotnet/core/tools/dotnet-migrate", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/preview3/tools/dotnet-msbuild.md", - "redirect_url": "/dotnet/core/tools/dotnet-msbuild", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/preview3/tools/dotnet-new.md", - "redirect_url": "/dotnet/core/tools/dotnet-new" - }, - { - "source_path_from_root": "/docs/core/preview3/tools/dotnet-nuget-delete.md", - "redirect_url": "/dotnet/core/tools/dotnet-nuget-delete", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/preview3/tools/dotnet-nuget-locals.md", - "redirect_url": "/dotnet/core/tools/dotnet-nuget-locals", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/preview3/tools/dotnet-nuget-push.md", - "redirect_url": "/dotnet/core/tools/dotnet-nuget-push", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/preview3/tools/dotnet-pack.md", - "redirect_url": "/dotnet/core/tools/dotnet-pack" - }, - { - "source_path_from_root": "/docs/core/preview3/tools/dotnet-publish.md", - "redirect_url": "/dotnet/core/tools/dotnet-publish" - }, - { - "source_path_from_root": "/docs/core/preview3/tools/dotnet-remove-package.md", - "redirect_url": "/dotnet/core/tools/dotnet-package-remove", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/preview3/tools/dotnet-remove-reference.md", - "redirect_url": "/dotnet/core/tools/dotnet-reference-remove", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/preview3/tools/dotnet-restore.md", - "redirect_url": "/dotnet/core/tools/dotnet-restore" - }, - { - "source_path_from_root": "/docs/core/preview3/tools/dotnet-run.md", - "redirect_url": "/dotnet/core/tools/dotnet-run" - }, - { - "source_path_from_root": "/docs/core/preview3/tools/dotnet-sln.md", - "redirect_url": "/dotnet/core/tools/dotnet-sln" - }, - { - "source_path_from_root": "/docs/core/preview3/tools/dotnet-test.md", - "redirect_url": "/dotnet/core/tools/dotnet-test" - }, - { - "source_path_from_root": "/docs/core/preview3/tools/dotnet.md", - "redirect_url": "/dotnet/core/tools/dotnet" - }, - { - "source_path_from_root": "/docs/core/preview3/tools/extensibility.md", - "redirect_url": "/dotnet/core/project-sdk/overview" - }, - { - "source_path_from_root": "/docs/core/preview3/tools/global-json.md", - "redirect_url": "/dotnet/core/tools/global-json" - }, - { - "source_path_from_root": "/docs/core/preview3/tools/index.md", - "redirect_url": "/dotnet/core/tools/index", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/preview3/tools/layering.md", - "redirect_url": "/dotnet/core/tools/dotnet-migrate" - }, - { - "source_path_from_root": "/docs/core/preview3/tools/telemetry.md", - "redirect_url": "/dotnet/core/tools/telemetry" - }, - { - "source_path_from_root": "/docs/core/preview3/tools/using-ci-with-cli.md", - "redirect_url": "/dotnet/devops/dotnet-cli-and-continuous-integration" - }, - { - "source_path_from_root": "/docs/core/preview3/tutorials/index.md", - "redirect_url": "/dotnet/core/tutorials/index", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/preview3/tutorials/using-on-windows-vs-2017-full-solution.md", - "redirect_url": "/dotnet/core/tutorials/with-visual-studio" - }, - { - "source_path_from_root": "/docs/core/preview3/tutorials/using-on-windows-vs-2017.md", - "redirect_url": "/dotnet/core/tutorials/with-visual-studio" - }, - { - "source_path_from_root": "/docs/core/preview3/tutorials/using-on-windows.md", - "redirect_url": "/dotnet/core/tutorials/with-visual-studio" - }, - { - "source_path_from_root": "/docs/core/preview3/tutorials/using-with-xplat-cli-msbuild-folders.md", - "redirect_url": "/dotnet/core/tutorials/testing-with-cli", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/preview3/tutorials/using-with-xplat-cli-msbuild.md", - "redirect_url": "/dotnet/core/tutorials/with-visual-studio-code" - }, - { - "source_path_from_root": "/docs/core/preview3/windows-prerequisites.md", - "redirect_url": "/dotnet/core/setup/index" - }, - { - "source_path_from_root": "/docs/core/run-time-config/compilation.md", - "redirect_url": "/dotnet/core/runtime-config/compilation" - }, - { - "source_path_from_root": "/docs/core/run-time-config/debugging-profiling.md", - "redirect_url": "/dotnet/core/runtime-config/debugging-profiling" - }, - { - "source_path_from_root": "/docs/core/run-time-config/garbage-collector.md", - "redirect_url": "/dotnet/core/runtime-config/garbage-collector" - }, - { - "source_path_from_root": "/docs/core/run-time-config/globalization.md", - "redirect_url": "/dotnet/core/runtime-config/globalization" - }, - { - "source_path_from_root": "/docs/core/run-time-config/index.md", - "redirect_url": "/dotnet/core/runtime-config/index" - }, - { - "source_path_from_root": "/docs/core/run-time-config/networking.md", - "redirect_url": "/dotnet/core/runtime-config/networking" - }, - { - "source_path_from_root": "/docs/core/run-time-config/threading.md", - "redirect_url": "/dotnet/core/runtime-config/threading" - }, - { - "source_path_from_root": "/docs/core/testing/using-mstest-on-windows.md", - "redirect_url": "/dotnet/core/testing/unit-testing-csharp-with-mstest", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-mstest-samples.md", - "redirect_url": "/dotnet/core/testing/unit-testing-mstest-getting-started", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-mstest-runner-intro.md", - "redirect_url": "/dotnet/core/testing/unit-testing-mstest-running-tests", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-mstest-writing-tests-attributes.md", - "redirect_url": "/dotnet/core/testing/unit-testing-mstest-writing-tests", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-mstest-analyzers-design.md", - "redirect_url": "/dotnet/core/testing/mstest-analyzers/design-rules", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-mstest-analyzers.md", - "redirect_url": "/dotnet/core/testing/mstest-analyzers/overview", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-mstest-analyzers-performance.md", - "redirect_url": "/dotnet/core/testing/mstest-analyzers/performance-rules", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-mstest-analyzers-usage.md", - "redirect_url": "/dotnet/core/testing/mstest-analyzers/usage-rules", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-mstest-analyzers-MSTEST0001.md", - "redirect_url": "/dotnet/core/testing/mstest-analyzers/mstest0001", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-mstest-analyzers-MSTEST0002.md", - "redirect_url": "/dotnet/core/testing/mstest-analyzers/mstest0002", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-mstest-analyzers-MSTEST0003.md", - "redirect_url": "/dotnet/core/testing/mstest-analyzers/mstest0003", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-mstest-analyzers-MSTEST0004.md", - "redirect_url": "/dotnet/core/testing/mstest-analyzers/mstest0004", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-mstest-analyzers-MSTEST0005.md", - "redirect_url": "/dotnet/core/testing/mstest-analyzers/mstest0005", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-mstest-analyzers-MSTEST0006.md", - "redirect_url": "/dotnet/core/testing/mstest-analyzers/mstest0006", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-mstest-runner-exit-codes.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes", - "redirect_document_id": false - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-mstest-runner-extensions.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-features", - "redirect_document_id": false - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-mstest-runner-integrations.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-integration-dotnet-test", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-mstest-runner-runsettings.md", - "redirect_url": "/dotnet/core/testing/unit-testing-platform-extensions-vstest-bridge#runsettings-support" - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-mstest-runner-telemetry.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-telemetry", - "redirect_document_id": false - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-mstest-runner-vs-vstest.md", - "redirect_url": "/dotnet/core/testing/test-platforms-overview", - "redirect_document_id": false - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-runsettings.md", - "redirect_url": "/dotnet/core/testing/unit-testing-platform-extensions-vstest-bridge#runsettings-support", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-with-copilot.md", - "redirect_url": "/visualstudio/ide/copilot-chat-context#slash-commands" - }, - { - "source_path_from_root": "/docs/core/additional-tools/xml-serializer-generator.md", - "redirect_url": "/previous-versions/dotnet/fundamentals/serialization/xml-serializer-generator" - }, - { - "source_path_from_root": "/docs/core/tools/cli-msbuild-architecture.md", - "redirect_url": "/dotnet/core/tools/dotnet-migrate" - }, - { - "source_path_from_root": "/docs/core/tools/csproj.md", - "redirect_url": "/dotnet/core/project-sdk/msbuild-props" - }, - { - "source_path_from_root": "/docs/core/tools/dotnet-add-package.md", - "redirect_url": "/dotnet/core/tools/dotnet-package-add" - }, - { - "source_path_from_root": "/docs/core/tools/dotnet-list-package.md", - "redirect_url": "/dotnet/core/tools/dotnet-package-list" - }, - { - "source_path_from_root": "/docs/core/tools/dotnet-remove-package.md", - "redirect_url": "/dotnet/core/tools/dotnet-package-remove" - }, - { - "source_path_from_root": "/docs/core/tools/dotnet-add-reference.md", - "redirect_url": "/dotnet/core/tools/dotnet-reference-add" - }, - { - "source_path_from_root": "/docs/core/tools/dotnet-list-reference.md", - "redirect_url": "/dotnet/core/tools/dotnet-reference-list" - }, - { - "source_path_from_root": "/docs/core/tools/dotnet-remove-reference.md", - "redirect_url": "/dotnet/core/tools/dotnet-reference-remove" - }, - { - "source_path_from_root": "/docs/core/tools/extensibility.md", - "redirect_url": "/dotnet/core/project-sdk/overview" - }, - { - "source_path_from_root": "/docs/core/tools/project-json-to-csproj.md", - "redirect_url": "/dotnet/core/tools/dotnet-migrate" - }, - { - "source_path_from_root": "/docs/core/tools/project-json.md", - "redirect_url": "/dotnet/core/tools/dotnet-migrate" - }, - { - "source_path_from_root": "/docs/core/tools/test-protocol.md", - "redirect_url": "/dotnet/core/tools/dotnet-test" - }, - { - "source_path_from_root": "/docs/core/tutorials/aspnet-core.md", - "redirect_url": "/dotnet/core/tutorials" - }, - { - "source_path_from_root": "/docs/core/tutorials/cli-console-app-tutorial-advanced.md", - "redirect_url": "/dotnet/core/tutorials" - }, - { - "source_path_from_root": "/docs/core/tutorials/cli-create-console-app.md", - "redirect_url": "/dotnet/core/tutorials/with-visual-studio-code" - }, - { - "source_path_from_root": "/docs/core/tutorials/cli-templates-create-template-pack.md", - "redirect_url": "/dotnet/core/tutorials/cli-templates-create-template-package" - }, - { - "source_path_from_root": "/docs/core/tutorials/consuming-library-with-visual-studio.md", - "redirect_url": "/nuget/quickstart/install-and-use-a-package-in-visual-studio" - }, - { - "source_path_from_root": "/docs/core/tutorials/create-custom-template.md", - "redirect_url": "/dotnet/core/tutorials/cli-templates-create-item-template" - }, - { - "source_path_from_root": "/docs/core/tutorials/libraries-with-vs.md", - "redirect_url": "/dotnet/core/tutorials/library-with-visual-studio" - }, - { - "source_path_from_root": "/docs/core/tutorials/target-dotnetcore-with-msbuild.md", - "redirect_url": "/dotnet/core/tools/dotnet-migrate" - }, - { - "source_path_from_root": "/docs/core/tutorials/using-on-mac-vs-full-solution.md", - "redirect_url": "/dotnet/core/tutorials/library-with-visual-studio-code" - }, - { - "source_path_from_root": "/docs/core/tutorials/using-on-mac-vs.md", - "redirect_url": "/dotnet/core/tutorials/with-visual-studio-code" - }, - { - "source_path_from_root": "/docs/core/tutorials/using-on-macos.md", - "redirect_url": "/dotnet/core/tutorials/library-with-visual-studio-code" - }, - { - "source_path_from_root": "/docs/core/tutorials/using-on-windows-full-solution.md", - "redirect_url": "/dotnet/core/tutorials/with-visual-studio" - }, - { - "source_path_from_root": "/docs/core/tutorials/using-on-windows.md", - "redirect_url": "/dotnet/core/tutorials/with-visual-studio" - }, - { - "source_path_from_root": "/docs/core/tutorials/using-with-xplat-cli.md", - "redirect_url": "/dotnet/core/tutorials/with-visual-studio-code" - }, - { - "source_path_from_root": "/docs/core/tutorials/vb-library-with-visual-studio.md", - "redirect_url": "/dotnet/core/tutorials/library-with-visual-studio" - }, - { - "source_path_from_root": "/docs/core/tutorials/vb-with-visual-studio.md", - "redirect_url": "/dotnet/core/tutorials/with-visual-studio" - }, - { - "source_path_from_root": "/docs/core/tutorials/debugging-with-visual-studio-mac.md", - "redirect_url": "/dotnet/core/tutorials/debugging-with-visual-studio-code" - }, - { - "source_path_from_root": "/docs/core/tutorials/library-with-visual-studio-mac.md", - "redirect_url": "/dotnet/core/tutorials/library-with-visual-studio-code" - }, - { - "source_path_from_root": "/docs/core/tutorials/publishing-with-visual-studio-mac.md", - "redirect_url": "/dotnet/core/tutorials/publishing-with-visual-studio-code" - }, - { - "source_path_from_root": "/docs/core/tutorials/testing-library-with-visual-studio-mac.md", - "redirect_url": "/dotnet/core/tutorials/testing-library-with-visual-studio-code" - }, - { - "source_path_from_root": "/docs/core/tutorials/with-visual-studio-mac.md", - "redirect_url": "/dotnet/core/tutorials/with-visual-studio-code" - }, - { - "source_path_from_root": "/docs/core/unmanaged-api/metadata/enumerations/assemblyrefflags-enumeration.md", - "redirect_url": "/dotnet/core/unmanaged-api/metadata/enumerations/corassemblyflags-enumeration" - }, - { - "source_path_from_root": "/docs/core/versions/install-management.md", - "redirect_url": "/dotnet/core/install/remove-runtime-sdk-versions" - }, - { - "source_path_from_root": "/docs/core/versions/lts-current.md", - "redirect_url": "https://dotnet.microsoft.com/platform/support/policy/dotnet-core" - }, - { - "source_path_from_root": "/docs/core/versions/remove-runtime-sdk-versions.md", - "redirect_url": "/dotnet/core/install/remove-runtime-sdk-versions" - }, - { - "source_path_from_root": "/docs/core/versions/servicing.md", - "redirect_url": "/dotnet/core/versions" - }, - { - "source_path_from_root": "/docs/core/versions/version-history.md", - "redirect_url": "/dotnet/core/versions/selection" - }, - { - "source_path_from_root": "/docs/whats-new/dotnet-7-docs.md", - "redirect_url": "/dotnet/whats-new" - }, - { - "source_path_from_root": "/docs/core/whats-new/dotnet-8.md", - "redirect_url": "/dotnet/core/whats-new/dotnet-8/overview", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/whats-new/index.md", - "redirect_url": "/dotnet/core/whats-new/dotnet-11/overview", - "ms.custom": "updateeachrelease" - }, - { - "source_path_from_root": "/docs/core/whats-new/whats-new-in-core-20.md", - "redirect_url": "/dotnet/core/whats-new/dotnet-core-2-0" - }, - { - "source_path_from_root": "/docs/core/windows-prerequisites.md", - "redirect_url": "/dotnet/core/install/windows#dependencies" - }, - { - "source_path_from_root": "/docs/core/tools/using-ci-with-cli.md", - "redirect_url": "/dotnet/devops/dotnet-cli-and-continuous-integration" - }, - { - "source_path_from_root": "/docs/core/extensions/http-client.md", - "redirect_url": "/dotnet/core/extensions/http-client-factory" - }, - { - "source_path_from_root": "/docs/fundamentals/networking/tcp/tcp-services.md", - "redirect_url": "/dotnet/fundamentals/networking/sockets/tcp-classes" - }, - { - "source_path_from_root": "/docs/fundamentals/networking/tcp/tcp-overview.md", - "redirect_url": "/dotnet/fundamentals/networking/sockets/tcp-classes" - }, - { - "source_path_from_root": "/docs/core/docker/publish-as-container.md", - "redirect_url": "/dotnet/core/containers/sdk-publish" - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-fsharp-with-dotnet-test.md", - "redirect_url": "/dotnet/core/testing/unit-testing-fsharp-with-xunit" - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-architecture-capabilities.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-architecture-capabilities" - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-architecture-extensions.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-architecture-extensions" - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-architecture-services.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-architecture-services" - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-architecture.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-architecture" - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-config.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-config" - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-diagnostics.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-crash-hang-dumps" - }, - { - "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-diagnostics.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-crash-hang-dumps", - "redirect_document_id": false - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-exit-codes.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes" - }, - { - "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-exit-codes.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes", - "redirect_document_id": false - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-extensions-code-coverage.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-code-coverage" - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-extensions-diagnostics.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-crash-hang-dumps" - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-extensions-fakes.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-fakes" - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-faq.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-troubleshooting" - }, - { - "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-faq.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-troubleshooting", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-extensions-hosting.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-hot-reload" - }, - { - "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-hosting.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-hot-reload", - "redirect_document_id": false - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-extensions-output.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-terminal-output" - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-extensions-policy.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-retry" - }, - { - "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-policy.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-retry", - "redirect_document_id": false - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-extensions-test-reports.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-test-reports" - }, - { - "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-test-reports.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-test-reports", - "redirect_document_id": false - }, - { - "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-output.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-terminal-output", - "redirect_document_id": false - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-extensions-vstest-bridge.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-extensions-vstest-bridge" - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-extensions.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-features" - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-extensions-faq.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-extensions-faq" - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-integration-dotnet-test.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-integration-dotnet-test" - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-intro.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-intro" - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-telemetry.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-telemetry" - }, - { - "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-features", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-reporting.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-test-reports", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-diagnostics.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-crash-hang-dumps", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-code-coverage.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-code-coverage", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-open-telemetry.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-open-telemetry", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-retry.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-retry", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-hot-reload.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-hot-reload", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-fakes.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-fakes", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-telemetry.md", - "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-telemetry", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-platform-vs-vstest.md", - "redirect_url": "/dotnet/core/testing/test-platforms-overview" - }, - { - "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-vs-vstest.md", - "redirect_url": "/dotnet/core/testing/test-platforms-overview", - "redirect_document_id": true - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-published-output.md", - "redirect_url": "/dotnet/core/tools/dotnet-vstest" - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-visual-basic-with-dotnet-test.md", - "redirect_url": "/dotnet/core/testing/unit-testing-visual-basic-with-xunit" - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-with-mstest.md", - "redirect_url": "/dotnet/core/testing/unit-testing-csharp-with-mstest" - }, - { - "source_path_from_root": "/docs/core/testing/unit-testing-with-nunit.md", - "redirect_url": "/dotnet/core/testing/unit-testing-csharp-with-nunit" - }, - { - "source_path_from_root": "/docs/core/compatibility/sdk/9.0/nugetaudit-transitive-packages.md", - "redirect_url": "/dotnet/core/compatibility/sdk/10.0/nugetaudit-transitive-packages" - } - ] + "redirections": [ + { + "source_path_from_root": "/docs/core/about.md", + "redirect_url": "/dotnet/core/introduction" + }, + { + "source_path_from_root": "/docs/core/app-types.md", + "redirect_url": "/dotnet/core/deploying/index" + }, + { + "source_path_from_root": "/docs/core/additional-tools/uninstall-tool.md", + "redirect_url": "/dotnet/core/additional-tools/uninstall-tool-overview" + }, + { + "source_path_from_root": "/docs/core/build/distribution-packaging.md", + "redirect_url": "/dotnet/core/distribution-packaging", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/2.0-2.1.md", + "redirect_url": "/dotnet/core/compatibility/2.1", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/2.2-3.0.md", + "redirect_url": "/dotnet/core/compatibility/3.0", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/2.2-3.1.md", + "redirect_url": "/dotnet/core/compatibility/3.1" + }, + { + "source_path_from_root": "/docs/core/compatibility/3.0-3.1.md", + "redirect_url": "/dotnet/core/compatibility/3.1", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/3.0.6-3.0.7.md", + "redirect_url": "/dotnet/core/compatibility/3.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/3.0.7-3.0.8.md", + "redirect_url": "/dotnet/core/compatibility/3.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/3.0.8-3.0.9.md", + "redirect_url": "/dotnet/core/compatibility/3.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/3.0.9-3.0rc1.md", + "redirect_url": "/dotnet/core/compatibility/3.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/3.1-5.0.md", + "redirect_url": "/dotnet/core/compatibility/5.0", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/10.0.md", + "redirect_url": "/dotnet/core/compatibility/10", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/10/apidescription-client-deprecated.md", + "redirect_url": "/aspnet/core/breaking-changes/10/apidescription-client-deprecated" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/10/cookie-authentication-api-endpoints.md", + "redirect_url": "/aspnet/core/breaking-changes/10/cookie-authentication-api-endpoints" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/10/exception-handler-diagnostics-suppressed.md", + "redirect_url": "/aspnet/core/breaking-changes/10/exception-handler-diagnostics-suppressed" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/10/iactioncontextaccessor-obsolete.md", + "redirect_url": "/aspnet/core/breaking-changes/10/iactioncontextaccessor-obsolete" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/10/ipnetwork-knownnetworks-obsolete.md", + "redirect_url": "/aspnet/core/breaking-changes/10/ipnetwork-knownnetworks-obsolete" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/10/openapi-analyzers-deprecated.md", + "redirect_url": "/aspnet/core/breaking-changes/10/openapi-analyzers-deprecated" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/10/razor-runtime-compilation-obsolete.md", + "redirect_url": "/aspnet/core/breaking-changes/10/razor-runtime-compilation-obsolete" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/10/webhostbuilder-deprecated.md", + "redirect_url": "/aspnet/core/breaking-changes/10/webhostbuilder-deprecated" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/10/withopenapi-deprecated.md", + "redirect_url": "/aspnet/core/breaking-changes/10/withopenapi-deprecated" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/authentication-aad-packages-obsolete.md", + "redirect_url": "/aspnet/core/breaking-changes/5/authentication-aad-packages-obsolete" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/authorization-resource-in-endpoint-routing.md", + "redirect_url": "/aspnet/core/breaking-changes/5/authorization-resource-in-endpoint-routing" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/azure-integration-packages-removed.md", + "redirect_url": "/aspnet/core/breaking-changes/5/azure-integration-packages-removed" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/blazor-browser-support-updated.md", + "redirect_url": "/aspnet/core/breaking-changes/5/blazor-browser-support-updated" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/blazor-components-trim-insignificant-whitespace.md", + "redirect_url": "/aspnet/core/breaking-changes/5/blazor-components-trim-insignificant-whitespace" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/blazor-jsobjectreference-to-internal.md", + "redirect_url": "/aspnet/core/breaking-changes/5/blazor-jsobjectreference-to-internal" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/blazor-packages-target-framework-changed.md", + "redirect_url": "/aspnet/core/breaking-changes/5/blazor-packages-target-framework-changed" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/blazor-protectedbrowserstorage-moved.md", + "redirect_url": "/aspnet/core/breaking-changes/5/blazor-protectedbrowserstorage-moved" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/blazor-rendertreeframe-fields-become-properties.md", + "redirect_url": "/aspnet/core/breaking-changes/5/blazor-rendertreeframe-fields-become-properties" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/blazor-routing-logic-changed.md", + "redirect_url": "/aspnet/core/breaking-changes/5/blazor-routing-logic-changed" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/blazor-static-web-assets-validation-logic-updated.md", + "redirect_url": "/aspnet/core/breaking-changes/5/blazor-static-web-assets-validation-logic-updated" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/extensions-package-reference-changes.md", + "redirect_url": "/aspnet/core/breaking-changes/5/extensions-package-reference-changes" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/http-badhttprequestexception-obsolete.md", + "redirect_url": "/aspnet/core/breaking-changes/5/http-badhttprequestexception-obsolete" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/http-httpclient-instances-log-integer-status-codes.md", + "redirect_url": "/aspnet/core/breaking-changes/5/http-httpclient-instances-log-integer-status-codes" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/httpsys-client-certificate-renegotiation-disabled-by-default.md", + "redirect_url": "/aspnet/core/breaking-changes/5/httpsys-client-certificate-renegotiation-disabled-by-default" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/iis-urlrewrite-middleware-query-strings-are-preserved.md", + "redirect_url": "/aspnet/core/breaking-changes/5/iis-urlrewrite-middleware-query-strings-are-preserved" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/kestrel-configuration-changes-at-run-time-detected-by-default.md", + "redirect_url": "/aspnet/core/breaking-changes/5/kestrel-configuration-changes-at-run-time-detected-by-default" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/kestrel-default-supported-tls-protocol-versions-changed.md", + "redirect_url": "/aspnet/core/breaking-changes/5/kestrel-default-supported-tls-protocol-versions-changed" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/kestrel-disables-http2-over-tls.md", + "redirect_url": "/aspnet/core/breaking-changes/5/kestrel-disables-http2-over-tls" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/kestrel-libuv-transport-obsolete.md", + "redirect_url": "/aspnet/core/breaking-changes/5/kestrel-libuv-transport-obsolete" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/localization-members-removed.md", + "redirect_url": "/aspnet/core/breaking-changes/5/localization-members-removed" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/localization-pubternal-apis-removed.md", + "redirect_url": "/aspnet/core/breaking-changes/5/localization-pubternal-apis-removed" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/localization-requestlocalizationmiddleware-constructor-removed.md", + "redirect_url": "/aspnet/core/breaking-changes/5/localization-requestlocalizationmiddleware-constructor-removed" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/middleware-database-error-page-obsolete.md", + "redirect_url": "/aspnet/core/breaking-changes/5/middleware-database-error-page-obsolete" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/middleware-exception-handler-throws-original-exception.md", + "redirect_url": "/aspnet/core/breaking-changes/5/middleware-exception-handler-throws-original-exception" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/mvc-objectmodelvalidator-calls-new-overload.md", + "redirect_url": "/aspnet/core/breaking-changes/5/mvc-objectmodelvalidator-calls-new-overload" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/security-cookie-name-encoding-removed.md", + "redirect_url": "/aspnet/core/breaking-changes/5/security-cookie-name-encoding-removed" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/security-identitymodel-nuget-package-versions-updated.md", + "redirect_url": "/aspnet/core/breaking-changes/5/security-identitymodel-nuget-package-versions-updated" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/signalr-messagepack-hub-protocol-options-changed.md", + "redirect_url": "/aspnet/core/breaking-changes/5/signalr-messagepack-hub-protocol-options-changed" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/signalr-messagepack-package.md", + "redirect_url": "/aspnet/core/breaking-changes/5/signalr-messagepack-package" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/signalr-usesignalr-useconnections-removed.md", + "redirect_url": "/aspnet/core/breaking-changes/5/signalr-usesignalr-useconnections-removed" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/5.0/static-files-csv-content-type-changed.md", + "redirect_url": "/aspnet/core/breaking-changes/5/static-files-csv-content-type-changed" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/actionresult-statuscode.md", + "redirect_url": "/aspnet/core/breaking-changes/6/actionresult-statuscode" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/adddataannotationsvalidation-obsolete.md", + "redirect_url": "/aspnet/core/breaking-changes/6/adddataannotationsvalidation-obsolete" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/assemblies-removed-from-shared-framework.md", + "redirect_url": "/aspnet/core/breaking-changes/6/assemblies-removed-from-shared-framework" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/blazor-eventargstype-property-replaced.md", + "redirect_url": "/aspnet/core/breaking-changes/6/blazor-eventargstype-property-replaced" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/blazor-long-polling-fallback.md", + "redirect_url": "/dotnet/core/compatibility/6.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/blazor-parameter-name-changed-in-method.md", + "redirect_url": "/aspnet/core/breaking-changes/6/blazor-parameter-name-changed-in-method" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/byte-array-interop.md", + "redirect_url": "/aspnet/core/breaking-changes/6/byte-array-interop" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/clientcertificate-doesnt-trigger-renegotiation.md", + "redirect_url": "/aspnet/core/breaking-changes/6/clientcertificate-doesnt-trigger-renegotiation" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/endpointname-metadata.md", + "redirect_url": "/aspnet/core/breaking-changes/6/endpointname-metadata" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/iasyncenumerable-not-buffered-by-mvc.md", + "redirect_url": "/aspnet/core/breaking-changes/6/iasyncenumerable-not-buffered-by-mvc" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/identity-bootstrap4-to-5.md", + "redirect_url": "/aspnet/core/breaking-changes/6/identity-bootstrap4-to-5" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/kestrel-log-message-attributes-changed.md", + "redirect_url": "/aspnet/core/breaking-changes/6/kestrel-log-message-attributes-changed" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/messagepack-library-change.md", + "redirect_url": "/aspnet/core/breaking-changes/6/messagepack-library-change" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/microsoft-aspnetcore-http-features-package-split.md", + "redirect_url": "/aspnet/core/breaking-changes/6/microsoft-aspnetcore-http-features-package-split" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/middleware-ambiguous-https-ports-exception.md", + "redirect_url": "/aspnet/core/breaking-changes/6/middleware-ambiguous-https-ports-exception" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/middleware-new-use-overload.md", + "redirect_url": "/aspnet/core/breaking-changes/6/middleware-new-use-overload" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/nullable-reference-type-annotations-changed.md", + "redirect_url": "/aspnet/core/breaking-changes/6/nullable-reference-type-annotations-changed" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/obsolete-removed-apis.md", + "redirect_url": "/aspnet/core/breaking-changes/6/obsolete-removed-apis" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/preservecompilationcontext-not-set-by-default.md", + "redirect_url": "/aspnet/core/breaking-changes/6/preservecompilationcontext-not-set-by-default" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/razor-compiler-doesnt-produce-views-assembly.md", + "redirect_url": "/aspnet/core/breaking-changes/6/razor-compiler-doesnt-produce-views-assembly" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/razor-engine-apis-obsolete.md", + "redirect_url": "/aspnet/core/breaking-changes/6/razor-engine-apis-obsolete" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/razor-pages-logging-ids.md", + "redirect_url": "/aspnet/core/breaking-changes/6/razor-pages-logging-ids" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/rc1-minimal-api-renames.md", + "redirect_url": "/aspnet/core/breaking-changes/6/rc1-minimal-api-renames" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/rc2-minimal-api-renames.md", + "redirect_url": "/aspnet/core/breaking-changes/6/rc2-minimal-api-renames" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/signalr-java-client-updated.md", + "redirect_url": "/aspnet/core/breaking-changes/6/signalr-java-client-updated" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/6.0/tryparse-bindasync-validation.md", + "redirect_url": "/aspnet/core/breaking-changes/6/tryparse-bindasync-validation" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/api-controller-action-parameters-di.md", + "redirect_url": "/aspnet/core/breaking-changes/7/api-controller-action-parameters-di" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/authenticateasync-anonymous-request.md", + "redirect_url": "/aspnet/core/breaking-changes/7/authenticateasync-anonymous-request" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/default-authentication-scheme.md", + "redirect_url": "/aspnet/core/breaking-changes/7/default-authentication-scheme" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/environment-variable-precedence.md", + "redirect_url": "/aspnet/core/breaking-changes/7/environment-variable-precedence" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/fallback-file-endpoints.md", + "redirect_url": "/aspnet/core/breaking-changes/7/fallback-file-endpoints" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/https-binding-kestrel.md", + "redirect_url": "/aspnet/core/breaking-changes/7/https-binding-kestrel" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/iendpointmetadataprovider-changes.md", + "redirect_url": "/dotnet/core/compatibility/7.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/ihubclients-ihubcallerclients.md", + "redirect_url": "/aspnet/core/breaking-changes/7/ihubclients-ihubcallerclients" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/libuv-transport-dll-removed.md", + "redirect_url": "/aspnet/core/breaking-changes/7/libuv-transport-dll-removed" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/microsoft-aspnetcore-mvc-core-log-event-ids.md", + "redirect_url": "/aspnet/core/breaking-changes/7/microsoft-aspnetcore-mvc-core-log-event-ids" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/microsoft-data-sqlclient-updated-to-4-0-1.md", + "redirect_url": "/aspnet/core/breaking-changes/7/microsoft-data-sqlclient-updated-to-4-0-1" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/middleware-null-requestdelegate.md", + "redirect_url": "/aspnet/core/breaking-changes/7/middleware-null-requestdelegate" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/mvc-empty-body-model-binding.md", + "redirect_url": "/aspnet/core/breaking-changes/7/mvc-empty-body-model-binding" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/output-caching-renames.md", + "redirect_url": "/aspnet/core/breaking-changes/7/output-caching-renames" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/signalr-hub-method-parameters-di.md", + "redirect_url": "/aspnet/core/breaking-changes/7/signalr-hub-method-parameters-di" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/7.0/wasm-app-authentication.md", + "redirect_url": "/aspnet/core/breaking-changes/7/wasm-app-authentication" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/8.0/addratelimiter-requirement.md", + "redirect_url": "/aspnet/core/breaking-changes/8/addratelimiter-requirement" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/8.0/antiforgery-checks.md", + "redirect_url": "/aspnet/core/breaking-changes/8/antiforgery-checks" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/8.0/concurrencylimitermiddleware-obsolete.md", + "redirect_url": "/aspnet/core/breaking-changes/8/concurrencylimitermiddleware-obsolete" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/8.0/forwarded-headers-unknown-proxies.md", + "redirect_url": "/aspnet/core/breaking-changes/8/forwarded-headers-unknown-proxies" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/8.0/httplogging-addhttplogging-requirement.md", + "redirect_url": "/aspnet/core/breaking-changes/8/httplogging-addhttplogging-requirement" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/8.0/isystemclock-obsolete.md", + "redirect_url": "/aspnet/core/breaking-changes/8/isystemclock-obsolete" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/8.0/problemdetails-custom-converters.md", + "redirect_url": "/aspnet/core/breaking-changes/8/problemdetails-custom-converters" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/8.0/securitytoken-events.md", + "redirect_url": "/aspnet/core/breaking-changes/8/securitytoken-events" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/8.0/trimmode-full.md", + "redirect_url": "/aspnet/core/breaking-changes/8/trimmode-full" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/9.0/certificate-export.md", + "redirect_url": "/aspnet/core/breaking-changes/9/certificate-export" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/9.0/hostbuilder-validation.md", + "redirect_url": "/aspnet/core/breaking-changes/9/hostbuilder-validation" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/9.0/key-resolution.md", + "redirect_url": "/aspnet/core/breaking-changes/9/key-resolution" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/9.0/legacy-apis.md", + "redirect_url": "/aspnet/core/breaking-changes/9/legacy-apis" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnet-core/9.0/middleware-constructors.md", + "redirect_url": "/aspnet/core/breaking-changes/9/middleware-constructors" + }, + { + "source_path_from_root": "/docs/core/compatibility/aspnetcore.md", + "redirect_url": "/dotnet/core/compatibility/3.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/code-analysis.md", + "redirect_url": "/dotnet/core/compatibility/code-analysis/5.0/ca1416-platform-compatibility-analyzer" + }, + { + "source_path_from_root": "/docs/core/compatibility/core-libraries/6.0/jsonserializer-source-generator-overloads.md", + "redirect_url": "/dotnet/core/compatibility/serialization/6.0/jsonserializer-source-generator-overloads", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/core-libraries/7.0/filesystemeventargs-fullpath.md", + "redirect_url": "/dotnet/core/compatibility/7.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/core-libraries/5.0/binaryformatter-serialization-obsolete.md", + "redirect_url": "/dotnet/core/compatibility/serialization/5.0/binaryformatter-serialization-obsolete", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/core-libraries/6.0/nullable-ref-type-annotations-added.md", + "redirect_url": "/dotnet/core/compatibility/core-libraries/6.0/nullable-ref-type-annotation-changes" + }, + { + "source_path_from_root": "/docs/core/compatibility/core-libraries/6.0/xmlresolver-nullable.md", + "redirect_url": "/dotnet/core/compatibility/core-libraries/6.0/nullable-ref-type-annotation-changes" + }, + { + "source_path_from_root": "/docs/core/compatibility/core-libraries/7.0/binaryformatter-apis-produce-errors.md", + "redirect_url": "/dotnet/core/compatibility/serialization/7.0/binaryformatter-apis-produce-errors", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/core-libraries/7.0/serializationformat-binary.md", + "redirect_url": "/dotnet/core/compatibility/serialization/7.0/serializationformat-binary", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/core-libraries/8.0/indexofanyvalues-renamed.md", + "redirect_url": "/dotnet/core/compatibility/8.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/core-libraries/8.0/optimizeforreading-arg.md", + "redirect_url": "/dotnet/core/compatibility/8.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/core-libraries/10.0/ymm-embedded-rounding.md", + "redirect_url": "/dotnet/core/compatibility/10" + }, + { + "source_path_from_root": "/docs/core/compatibility/corefx.md", + "redirect_url": "/dotnet/core/compatibility/3.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/cryptography.md", + "redirect_url": "/dotnet/core/compatibility/3.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/deployment/9.0/assembly-load-directory.md", + "redirect_url": "/dotnet/core/compatibility/9.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/extensions/6.0/bind-single-elements-to-array.md", + "redirect_url": "/dotnet/core/compatibility/6.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/framework-core.md", + "redirect_url": "/dotnet/core/compatibility/fx-core" + }, + { + "source_path_from_root": "/docs/core/compatibility/globalization.md", + "redirect_url": "/dotnet/core/compatibility/3.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/index.md", + "redirect_url": "/dotnet/core/compatibility/library-change-rules", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/interop.md", + "redirect_url": "/dotnet/core/compatibility/interop/5.0/built-in-support-for-winrt-removed" + }, + { + "source_path_from_root": "/docs/core/compatibility/msbuild.md", + "redirect_url": "/dotnet/core/compatibility/3.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/msbuild/5.0/directory-packages-props-imported-by-default.md", + "redirect_url": "/dotnet/core/compatibility/sdk/5.0/directory-packages-props-imported-by-default", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/msbuild/5.0/netcoreapp3_1-preprocessor-symbol-not-defined.md", + "redirect_url": "/dotnet/core/compatibility/sdk/5.0/netcoreapp3_1-preprocessor-symbol-not-defined", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/msbuild/5.0/publishdepsfilepath-behavior-change.md", + "redirect_url": "/dotnet/core/compatibility/sdk/5.0/publishdepsfilepath-behavior-change", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/msbuild/5.0/targetframework-name-change.md", + "redirect_url": "/dotnet/core/compatibility/sdk/5.0/targetframework-name-change", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/msbuild/6.0/gettargetframeworkproperties-and-getnearesttargetframework-removed.md", + "redirect_url": "/dotnet/core/compatibility/sdk/6.0/gettargetframeworkproperties-and-getnearesttargetframework-removed", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/networking.md", + "redirect_url": "/dotnet/core/compatibility/3.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/networking/10.0/ssl-certificate-revocation-check-default.md", + "redirect_url": "/dotnet/core/compatibility/10" + }, + { + "source_path_from_root": "/docs/core/compatibility/networking/7.0/connectasync-argumentexception.md", + "redirect_url": "/dotnet/core/compatibility/7.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/sdk/6.0/implicit-namespaces.md", + "redirect_url": "/dotnet/core/compatibility/sdk/6.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/sdk/6.0/implicit-namespaces-rc1.md", + "redirect_url": "/dotnet/core/compatibility/6.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/sdk/8.0/tool-rollforward.md", + "redirect_url": "/dotnet/core/compatibility/8.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/sdk/10.0/version-requirements.md", + "redirect_url": "/dotnet/core/compatibility/10" + }, + { + "source_path_from_root": "/docs/core/compatibility/serialization.md", + "redirect_url": "/dotnet/core/compatibility/serialization/5.0/binaryformatter-deserialize-rewraps-exceptions" + }, + { + "source_path_from_root": "/docs/core/compatibility/serialization/6.0/jsonnode-dynamic-type.md", + "redirect_url": "/dotnet/core/compatibility/6.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib-obsoletions.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/obsoletions-overview", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0001.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0001", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0002.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0002", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0003.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0003", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0004.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0004", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0005.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0005", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0006.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0006", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0007.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0007", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0008.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0008", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0009.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0009", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0010.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0010", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0011.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0011", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0012.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0012", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0013.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0013", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0014.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0014", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0015.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0015", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0016.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0016", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0017.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0017", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0018.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0018", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0019.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0019", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib-warnings/syslib0020.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0020", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib0001.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0001" + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib0002.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0002" + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib0003.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0003" + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib0004.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0004" + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib0005.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0005" + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib0006.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0006" + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib0007.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0007" + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib0008.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0008" + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib0009.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0009" + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib0010.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0010" + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib0011.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0011" + }, + { + "source_path_from_root": "/docs/core/compatibility/syslib0012.md", + "redirect_url": "/dotnet/fundamentals/syslib-diagnostics/syslib0012" + }, + { + "source_path_from_root": "/docs/core/compatibility/visualbasic.md", + "redirect_url": "/dotnet/core/compatibility/3.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/windows-forms/5.0/automatically-infer-winexe-output-type.md", + "redirect_url": "/dotnet/core/compatibility/sdk/5.0/automatically-infer-winexe-output-type", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/windows-forms/5.0/sdk-and-target-framework-change.md", + "redirect_url": "/dotnet/core/compatibility/sdk/5.0/sdk-and-target-framework-change", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/compatibility/windows-forms/8.0/anchor-layout.md", + "redirect_url": "/dotnet/core/compatibility/8.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/winforms.md", + "redirect_url": "/dotnet/core/compatibility/3.0" + }, + { + "source_path_from_root": "/docs/core/compatibility/wpf.md", + "redirect_url": "/dotnet/core/compatibility/3.0" + }, + { + "source_path_from_root": "/docs/core/deploying/applications.md", + "redirect_url": "/dotnet/core/deploying/index" + }, + { + "source_path_from_root": "/docs/core/deploying/deploy-with-cli.md", + "redirect_url": "/dotnet/core/deploying/index" + }, + { + "source_path_from_root": "/docs/core/deploying/deploy-with-vs.md", + "redirect_url": "/dotnet/core/deploying/index" + }, + { + "source_path_from_root": "/docs/core/deploying/fixing-warnings.md", + "redirect_url": "/dotnet/core/deploying/trimming/fixing-warnings", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/native-aot.md", + "redirect_url": "/dotnet/core/deploying/native-aot/index", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/prepare-libraries-for-trimming.md", + "redirect_url": "/dotnet/core/deploying/trimming/prepare-libraries-for-trimming", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/reducing-dependencies.md", + "redirect_url": "/dotnet/core/tools/dependencies" + }, + { + "source_path_from_root": "/docs/core/deploying/trim-self-contained.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-self-contained", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/single-file.md", + "redirect_url": "/dotnet/core/deploying/single-file/overview", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2001.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2001", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2002.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2002", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2003.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2003", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2004.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2004", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2005.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2005", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2007.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2007", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2008.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2008", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2009.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2009", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2010.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2010", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2011.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2011", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2012.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2012", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2013.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2013", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2014.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2014", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2015.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2015", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2016.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2016", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2017.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2017", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2018.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2018", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2019.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2019", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2022.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2022", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2023.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2023", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2024.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2024", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2025.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2025", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2026.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2026", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2027.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2027", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2028.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2028", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2029.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2029", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2030.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2030", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2031.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2031", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2032.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2032", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2033.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2033", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2034.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2034", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2035.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2035", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2036.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2036", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2037.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2037", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2038.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2038", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2039.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2039", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2040.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2040", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2041.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2041", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2042.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2042", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2043.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2043", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2044.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2044", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2045.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2045", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2046.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2046", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2048.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2048", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2049.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2049", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2050.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2050", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2051.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2051", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2052.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2052", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2053.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2053", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2054.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2054", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2055.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2055", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2056.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2056", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2057.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2057", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2058.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2058", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2059.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2059", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trim-warnings/il2060.md", + "redirect_url": "/dotnet/core/deploying/trimming/trim-warnings/il2060", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/deploying/trimming-options.md", + "redirect_url": "/dotnet/core/deploying/trimming/trimming-options", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/diagnostics/built-in-metrics-aspnetcore.md", + "redirect_url": "/aspnet/core/log-mon/metrics/built-in" + }, + { + "source_path_from_root": "/docs/core/docker/build-docker-netcore-container.md", + "redirect_url": "/dotnet/core/docker/build-container" + }, + { + "source_path_from_root": "/docs/core/docker/building-net-docker-images.md", + "redirect_url": "/aspnet/core/host-and-deploy/docker/building-net-docker-images" + }, + { + "source_path_from_root": "/docs/core/docker/docker-basics-dotnet-core.md", + "redirect_url": "/dotnet/core/docker/build-container" + }, + { + "source_path_from_root": "/docs/core/docker/index.md", + "redirect_url": "/dotnet/core/docker/introduction" + }, + { + "source_path_from_root": "/docs/core/docker/intro-net-docker.md", + "redirect_url": "/dotnet/core/docker/introduction" + }, + { + "source_path_from_root": "/docs/core/docker/visual-studio-tools-for-docker.md", + "redirect_url": "/aspnet/core/host-and-deploy/docker/visual-studio-tools-for-docker" + }, + { + "source_path_from_root": "/docs/core/dotnet-five.md", + "redirect_url": "/dotnet/core/whats-new/dotnet-5" + }, + { + "source_path_from_root": "/docs/core/enrichment/application-metadata.md", + "redirect_url": "/dotnet/core/diagnostics/ambient-metadata/application-metadata" + }, + { + "source_path_from_root": "/docs/core/extensions/artificial-intelligence.md", + "redirect_url": "/dotnet/ai/microsoft-extensions-ai" + }, + { + "source_path_from_root": "/docs/core/extensions/culture-insensitive-string-operations.md", + "redirect_url": "/dotnet/core/extensions/performing-culture-insensitive-string-operations" + }, + { + "source_path_from_root": "/docs/core/extensions/dependency-injection.md", + "redirect_url": "/dotnet/core/extensions/dependency-injection/overview" + }, + { + "source_path_from_root": "/docs/core/extensions/dependency-injection-basics.md", + "redirect_url": "/dotnet/core/extensions/dependency-injection/basics" + }, + { + "source_path_from_root": "/docs/core/extensions/dependency-injection-guidelines.md", + "redirect_url": "/dotnet/core/extensions/dependency-injection/guidelines" + }, + { + "source_path_from_root": "/docs/core/extensions/dependency-injection-usage.md", + "redirect_url": "/dotnet/core/extensions/dependency-injection/usage" + }, + { + "source_path_from_root": "/docs/core/extensions/high-performance-logging.md", + "redirect_url": "/dotnet/core/extensions/logging/high-performance-logging" + }, + { + "source_path_from_root": "/docs/core/extensions/console-log-formatter.md", + "redirect_url": "/dotnet/core/extensions/logging/console-log-formatter" + }, + { + "source_path_from_root": "/docs/core/extensions/custom-logging-provider.md", + "redirect_url": "/dotnet/core/extensions/logging/custom-provider" + }, + { + "source_path_from_root": "/docs/core/extensions/logging-library-authors.md", + "redirect_url": "/dotnet/core/extensions/logging/library-guidance" + }, + { + "source_path_from_root": "/docs/core/extensions/log-buffering.md", + "redirect_url": "/dotnet/core/extensions/logging/log-buffering" + }, + { + "source_path_from_root": "/docs/core/extensions/log-sampling.md", + "redirect_url": "/dotnet/core/extensions/logging/log-sampling" + }, + { + "source_path_from_root": "/docs/core/extensions/logging.md", + "redirect_url": "/dotnet/core/extensions/logging/overview" + }, + { + "source_path_from_root": "/docs/core/extensions/logging-providers.md", + "redirect_url": "/dotnet/core/extensions/logging/providers" + }, + { + "source_path_from_root": "/docs/core/extensions/logger-message-generator.md", + "redirect_url": "/dotnet/core/extensions/logging/source-generation" + }, + { + "source_path_from_root": "/docs/core/getting-started.md", + "redirect_url": "/dotnet/core/get-started", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/index.yml", + "redirect_url": "/dotnet/fundamentals/" + }, + { + "source_path_from_root": "/docs/core/install/dependencies.md", + "redirect_url": "/dotnet/core/install/windows" + }, + { + "source_path_from_root": "/docs/core/install/linux-centos.md", + "redirect_url": "/dotnet/core/install/linux-rhel#where-is-centos-linux" + }, + { + "source_path_from_root": "/docs/core/install/linux-package-manager-centos7.md", + "redirect_url": "/dotnet/core/install/linux-rhel#where-is-centos-linux" + }, + { + "source_path_from_root": "/docs/core/install/linux-package-manager-centos8.md", + "redirect_url": "/dotnet/core/install/linux-rhel#where-is-centos-linux" + }, + { + "source_path_from_root": "/docs/core/install/linux-package-manager-debian10.md", + "redirect_url": "/dotnet/core/install/linux-debian" + }, + { + "source_path_from_root": "/docs/core/install/linux-package-manager-debian9.md", + "redirect_url": "/dotnet/core/install/linux-debian" + }, + { + "source_path_from_root": "/docs/core/install/linux-package-manager-fedora29.md", + "redirect_url": "/dotnet/core/install/linux-fedora" + }, + { + "source_path_from_root": "/docs/core/install/linux-package-manager-fedora30.md", + "redirect_url": "/dotnet/core/install/linux-fedora" + }, + { + "source_path_from_root": "/docs/core/install/linux-package-manager-fedora31.md", + "redirect_url": "/dotnet/core/install/linux-fedora" + }, + { + "source_path_from_root": "/docs/core/install/linux-package-manager-fedora32.md", + "redirect_url": "/dotnet/core/install/linux-fedora" + }, + { + "source_path_from_root": "/docs/core/install/linux-package-manager-opensuse15.md", + "redirect_url": "/dotnet/core/install/linux-opensuse" + }, + { + "source_path_from_root": "/docs/core/install/linux-package-manager-rhel7.md", + "redirect_url": "/dotnet/core/install/linux-rhel" + }, + { + "source_path_from_root": "/docs/core/install/linux-package-manager-rhel8.md", + "redirect_url": "/dotnet/core/install/linux-rhel" + }, + { + "source_path_from_root": "/docs/core/install/linux-package-manager-rhel81.md", + "redirect_url": "/dotnet/core/install/linux-rhel" + }, + { + "source_path_from_root": "/docs/core/install/linux-package-manager-sles12.md", + "redirect_url": "/dotnet/core/install/linux-sles" + }, + { + "source_path_from_root": "/docs/core/install/linux-package-manager-sles15.md", + "redirect_url": "/dotnet/core/install/linux-sles" + }, + { + "source_path_from_root": "/docs/core/install/linux-package-managers.md", + "redirect_url": "/dotnet/core/install/linux" + }, + { + "source_path_from_root": "/docs/core/install/linux-ubuntu.md", + "redirect_url": "/dotnet/core/install/linux-ubuntu-install" + }, + { + "source_path_from_root": "/docs/core/install/runtime.md", + "redirect_url": "/dotnet/core/install/windows" + }, + { + "source_path_from_root": "/docs/core/install/linux-snap.md", + "redirect_url": "/dotnet/core/install/linux" + }, + { + "source_path_from_root": "/docs/core/install/sdk.md", + "redirect_url": "/dotnet/core/install/windows" + }, + { + "source_path_from_root": "/docs/core/linux-prerequisites.md", + "redirect_url": "/dotnet/core/install/linux" + }, + { + "source_path_from_root": "/docs/core/macos-prerequisites.md", + "redirect_url": "/dotnet/core/install/macos#dependencies" + }, + { + "source_path_from_root": "/docs/core/migrating-from-dnx.md", + "redirect_url": "/dotnet/core/tools" + }, + { + "source_path_from_root": "/docs/core/migration/20-21.md", + "redirect_url": "/dotnet/core/compatibility/2.1" + }, + { + "source_path_from_root": "/docs/core/migration/assembly-info.md", + "redirect_url": "/dotnet/core/project-sdk/msbuild-props#assembly-attribute-properties" + }, + { + "source_path_from_root": "/docs/core/migration/from-dnx.md", + "redirect_url": "/dotnet/core/tools" + }, + { + "source_path_from_root": "/docs/core/migration/index.md", + "redirect_url": "/dotnet/core/tools/dotnet-migrate" + }, + { + "source_path_from_root": "/docs/core/packages.md", + "redirect_url": "/dotnet/core/deploying" + }, + { + "source_path_from_root": "/docs/core/porting/github-copilot-app-modernization-faq.yml", + "redirect_url": "/dotnet/core/porting/github-copilot-app-modernization/faq" + }, + { + "source_path_from_root": "/docs/core/porting/github-copilot-app-modernization-overview.md", + "redirect_url": "/dotnet/core/porting/github-copilot-app-modernization/overview" + }, + { + "source_path_from_root": "/docs/core/porting/how-to-upgrade-with-github-copilot.md", + "redirect_url": "/dotnet/core/porting/github-copilot-app-modernization/how-to-upgrade-with-github-copilot" + }, + { + "source_path_from_root": "/docs/core/porting/libraries.md", + "redirect_url": "/dotnet/core/porting/" + }, + { + "source_path_from_root": "/docs/core/porting/nuget-packages.md", + "redirect_url": "/dotnet/core/deploying" + }, + { + "source_path_from_root": "/docs/core/porting/tools.md", + "redirect_url": "/dotnet/core/porting/#tools-to-assist-porting" + }, + { + "source_path_from_root": "/docs/core/porting/upgrade-assistant-aspnetmvc.md", + "redirect_url": "/aspnet/core/migration/mvc" + }, + { + "source_path_from_root": "/docs/core/porting/upgrade-assistant-install-legacy.md", + "redirect_url": "/dotnet/core/porting/github-copilot-app-modernization/overview" + }, + { + "source_path_from_root": "/docs/core/porting/upgrade-assistant-uwp-framework.md", + "redirect_url": "/windows/apps/windows-app-sdk/migrate-to-windows-app-sdk/upgrade-assistant" + }, + { + "source_path_from_root": "/docs/core/porting/upgrade-assistant-wcf.md", + "redirect_url": "/dotnet/core/porting/github-copilot-app-modernization/overview" + }, + { + "source_path_from_root": "/docs/core/porting/upgrade-assistant-winforms-framework.md", + "redirect_url": "/dotnet/desktop/winforms/migration/" + }, + { + "source_path_from_root": "/docs/core/porting/upgrade-assistant-wpf-framework.md", + "redirect_url": "/dotnet/desktop/wpf/migration/" + }, + { + "source_path_from_root": "/docs/core/porting/winforms-breaking-changes.md", + "redirect_url": "/dotnet/core/compatibility/fx-core" + }, + { + "source_path_from_root": "/docs/core/porting/winforms.md", + "redirect_url": "/dotnet/desktop/winforms/migration/" + }, + { + "source_path_from_root": "/docs/core/porting/wpf.md", + "redirect_url": "/dotnet/desktop/wpf/migration/convert-project-from-net-framework" + }, + { + "source_path_from_root": "/docs/core/preview3/deploying/index.md", + "redirect_url": "/dotnet/core/deploying/index", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/porting/github-copilot-app-modernization-install.md", + "redirect_url": "/dotnet/core/porting/github-copilot-app-modernization/overview" + }, + { + "source_path_from_root": "/docs/core/preview3/tools/csproj.md", + "redirect_url": "/dotnet/core/project-sdk/msbuild-props", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/preview3/tools/dependencies.md", + "redirect_url": "/dotnet/core/tools/dependencies", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/preview3/tools/dotnet-add-package.md", + "redirect_url": "/dotnet/core/tools/dotnet-package-add", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/preview3/tools/dotnet-add-reference.md", + "redirect_url": "/dotnet/core/tools/dotnet-reference-add", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/preview3/tools/dotnet-build.md", + "redirect_url": "/dotnet/core/tools/dotnet-build" + }, + { + "source_path_from_root": "/docs/core/preview3/tools/dotnet-clean.md", + "redirect_url": "/dotnet/core/tools/dotnet-clean", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/preview3/tools/dotnet-install-script.md", + "redirect_url": "/dotnet/core/tools/dotnet-install-script" + }, + { + "source_path_from_root": "/docs/core/preview3/tools/dotnet-list-reference.md", + "redirect_url": "/dotnet/core/tools/dotnet-reference-list", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/preview3/tools/dotnet-migrate.md", + "redirect_url": "/dotnet/core/tools/dotnet-migrate", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/preview3/tools/dotnet-msbuild.md", + "redirect_url": "/dotnet/core/tools/dotnet-msbuild", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/preview3/tools/dotnet-new.md", + "redirect_url": "/dotnet/core/tools/dotnet-new" + }, + { + "source_path_from_root": "/docs/core/preview3/tools/dotnet-nuget-delete.md", + "redirect_url": "/dotnet/core/tools/dotnet-nuget-delete", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/preview3/tools/dotnet-nuget-locals.md", + "redirect_url": "/dotnet/core/tools/dotnet-nuget-locals", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/preview3/tools/dotnet-nuget-push.md", + "redirect_url": "/dotnet/core/tools/dotnet-nuget-push", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/preview3/tools/dotnet-pack.md", + "redirect_url": "/dotnet/core/tools/dotnet-pack" + }, + { + "source_path_from_root": "/docs/core/preview3/tools/dotnet-publish.md", + "redirect_url": "/dotnet/core/tools/dotnet-publish" + }, + { + "source_path_from_root": "/docs/core/preview3/tools/dotnet-remove-package.md", + "redirect_url": "/dotnet/core/tools/dotnet-package-remove", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/preview3/tools/dotnet-remove-reference.md", + "redirect_url": "/dotnet/core/tools/dotnet-reference-remove", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/preview3/tools/dotnet-restore.md", + "redirect_url": "/dotnet/core/tools/dotnet-restore" + }, + { + "source_path_from_root": "/docs/core/preview3/tools/dotnet-run.md", + "redirect_url": "/dotnet/core/tools/dotnet-run" + }, + { + "source_path_from_root": "/docs/core/preview3/tools/dotnet-sln.md", + "redirect_url": "/dotnet/core/tools/dotnet-sln" + }, + { + "source_path_from_root": "/docs/core/preview3/tools/dotnet-test.md", + "redirect_url": "/dotnet/core/tools/dotnet-test" + }, + { + "source_path_from_root": "/docs/core/preview3/tools/dotnet.md", + "redirect_url": "/dotnet/core/tools/dotnet" + }, + { + "source_path_from_root": "/docs/core/preview3/tools/extensibility.md", + "redirect_url": "/dotnet/core/project-sdk/overview" + }, + { + "source_path_from_root": "/docs/core/preview3/tools/global-json.md", + "redirect_url": "/dotnet/core/tools/global-json" + }, + { + "source_path_from_root": "/docs/core/preview3/tools/index.md", + "redirect_url": "/dotnet/core/tools/index", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/preview3/tools/layering.md", + "redirect_url": "/dotnet/core/tools/dotnet-migrate" + }, + { + "source_path_from_root": "/docs/core/preview3/tools/telemetry.md", + "redirect_url": "/dotnet/core/tools/telemetry" + }, + { + "source_path_from_root": "/docs/core/preview3/tools/using-ci-with-cli.md", + "redirect_url": "/dotnet/devops/dotnet-cli-and-continuous-integration" + }, + { + "source_path_from_root": "/docs/core/preview3/tutorials/index.md", + "redirect_url": "/dotnet/core/tutorials/index", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/preview3/tutorials/using-on-windows-vs-2017-full-solution.md", + "redirect_url": "/dotnet/core/tutorials/with-visual-studio" + }, + { + "source_path_from_root": "/docs/core/preview3/tutorials/using-on-windows-vs-2017.md", + "redirect_url": "/dotnet/core/tutorials/with-visual-studio" + }, + { + "source_path_from_root": "/docs/core/preview3/tutorials/using-on-windows.md", + "redirect_url": "/dotnet/core/tutorials/with-visual-studio" + }, + { + "source_path_from_root": "/docs/core/preview3/tutorials/using-with-xplat-cli-msbuild-folders.md", + "redirect_url": "/dotnet/core/tutorials/testing-with-cli", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/preview3/tutorials/using-with-xplat-cli-msbuild.md", + "redirect_url": "/dotnet/core/tutorials/with-visual-studio-code" + }, + { + "source_path_from_root": "/docs/core/preview3/windows-prerequisites.md", + "redirect_url": "/dotnet/core/setup/index" + }, + { + "source_path_from_root": "/docs/core/run-time-config/compilation.md", + "redirect_url": "/dotnet/core/runtime-config/compilation" + }, + { + "source_path_from_root": "/docs/core/run-time-config/debugging-profiling.md", + "redirect_url": "/dotnet/core/runtime-config/debugging-profiling" + }, + { + "source_path_from_root": "/docs/core/run-time-config/garbage-collector.md", + "redirect_url": "/dotnet/core/runtime-config/garbage-collector" + }, + { + "source_path_from_root": "/docs/core/run-time-config/globalization.md", + "redirect_url": "/dotnet/core/runtime-config/globalization" + }, + { + "source_path_from_root": "/docs/core/run-time-config/index.md", + "redirect_url": "/dotnet/core/runtime-config/index" + }, + { + "source_path_from_root": "/docs/core/run-time-config/networking.md", + "redirect_url": "/dotnet/core/runtime-config/networking" + }, + { + "source_path_from_root": "/docs/core/run-time-config/threading.md", + "redirect_url": "/dotnet/core/runtime-config/threading" + }, + { + "source_path_from_root": "/docs/core/testing/using-mstest-on-windows.md", + "redirect_url": "/dotnet/core/testing/unit-testing-csharp-with-mstest", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-mstest-samples.md", + "redirect_url": "/dotnet/core/testing/unit-testing-mstest-getting-started", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-mstest-runner-intro.md", + "redirect_url": "/dotnet/core/testing/unit-testing-mstest-running-tests", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-mstest-writing-tests-attributes.md", + "redirect_url": "/dotnet/core/testing/unit-testing-mstest-writing-tests", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-mstest-analyzers-design.md", + "redirect_url": "/dotnet/core/testing/mstest-analyzers/design-rules", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-mstest-analyzers.md", + "redirect_url": "/dotnet/core/testing/mstest-analyzers/overview", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-mstest-analyzers-performance.md", + "redirect_url": "/dotnet/core/testing/mstest-analyzers/performance-rules", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-mstest-analyzers-usage.md", + "redirect_url": "/dotnet/core/testing/mstest-analyzers/usage-rules", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-mstest-analyzers-MSTEST0001.md", + "redirect_url": "/dotnet/core/testing/mstest-analyzers/mstest0001", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-mstest-analyzers-MSTEST0002.md", + "redirect_url": "/dotnet/core/testing/mstest-analyzers/mstest0002", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-mstest-analyzers-MSTEST0003.md", + "redirect_url": "/dotnet/core/testing/mstest-analyzers/mstest0003", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-mstest-analyzers-MSTEST0004.md", + "redirect_url": "/dotnet/core/testing/mstest-analyzers/mstest0004", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-mstest-analyzers-MSTEST0005.md", + "redirect_url": "/dotnet/core/testing/mstest-analyzers/mstest0005", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-mstest-analyzers-MSTEST0006.md", + "redirect_url": "/dotnet/core/testing/mstest-analyzers/mstest0006", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-mstest-runner-exit-codes.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes", + "redirect_document_id": false + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-mstest-runner-extensions.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-features", + "redirect_document_id": false + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-mstest-runner-integrations.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-integration-dotnet-test", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-mstest-runner-runsettings.md", + "redirect_url": "/dotnet/core/testing/unit-testing-platform-extensions-vstest-bridge#runsettings-support" + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-mstest-runner-telemetry.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-telemetry", + "redirect_document_id": false + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-mstest-runner-vs-vstest.md", + "redirect_url": "/dotnet/core/testing/test-platforms-overview", + "redirect_document_id": false + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-runsettings.md", + "redirect_url": "/dotnet/core/testing/unit-testing-platform-extensions-vstest-bridge#runsettings-support", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-with-copilot.md", + "redirect_url": "/visualstudio/ide/copilot-chat-context#slash-commands" + }, + { + "source_path_from_root": "/docs/core/additional-tools/xml-serializer-generator.md", + "redirect_url": "/previous-versions/dotnet/fundamentals/serialization/xml-serializer-generator" + }, + { + "source_path_from_root": "/docs/core/tools/cli-msbuild-architecture.md", + "redirect_url": "/dotnet/core/tools/dotnet-migrate" + }, + { + "source_path_from_root": "/docs/core/tools/csproj.md", + "redirect_url": "/dotnet/core/project-sdk/msbuild-props" + }, + { + "source_path_from_root": "/docs/core/tools/dotnet-add-package.md", + "redirect_url": "/dotnet/core/tools/dotnet-package-add" + }, + { + "source_path_from_root": "/docs/core/tools/dotnet-list-package.md", + "redirect_url": "/dotnet/core/tools/dotnet-package-list" + }, + { + "source_path_from_root": "/docs/core/tools/dotnet-remove-package.md", + "redirect_url": "/dotnet/core/tools/dotnet-package-remove" + }, + { + "source_path_from_root": "/docs/core/tools/dotnet-add-reference.md", + "redirect_url": "/dotnet/core/tools/dotnet-reference-add" + }, + { + "source_path_from_root": "/docs/core/tools/dotnet-list-reference.md", + "redirect_url": "/dotnet/core/tools/dotnet-reference-list" + }, + { + "source_path_from_root": "/docs/core/tools/dotnet-remove-reference.md", + "redirect_url": "/dotnet/core/tools/dotnet-reference-remove" + }, + { + "source_path_from_root": "/docs/core/tools/extensibility.md", + "redirect_url": "/dotnet/core/project-sdk/overview" + }, + { + "source_path_from_root": "/docs/core/tools/project-json-to-csproj.md", + "redirect_url": "/dotnet/core/tools/dotnet-migrate" + }, + { + "source_path_from_root": "/docs/core/tools/project-json.md", + "redirect_url": "/dotnet/core/tools/dotnet-migrate" + }, + { + "source_path_from_root": "/docs/core/tools/test-protocol.md", + "redirect_url": "/dotnet/core/tools/dotnet-test" + }, + { + "source_path_from_root": "/docs/core/tutorials/aspnet-core.md", + "redirect_url": "/dotnet/core/tutorials" + }, + { + "source_path_from_root": "/docs/core/tutorials/cli-console-app-tutorial-advanced.md", + "redirect_url": "/dotnet/core/tutorials" + }, + { + "source_path_from_root": "/docs/core/tutorials/cli-create-console-app.md", + "redirect_url": "/dotnet/core/tutorials/with-visual-studio-code" + }, + { + "source_path_from_root": "/docs/core/tutorials/cli-templates-create-template-pack.md", + "redirect_url": "/dotnet/core/tutorials/cli-templates-create-template-package" + }, + { + "source_path_from_root": "/docs/core/tutorials/consuming-library-with-visual-studio.md", + "redirect_url": "/nuget/quickstart/install-and-use-a-package-in-visual-studio" + }, + { + "source_path_from_root": "/docs/core/tutorials/create-custom-template.md", + "redirect_url": "/dotnet/core/tutorials/cli-templates-create-item-template" + }, + { + "source_path_from_root": "/docs/core/tutorials/libraries-with-vs.md", + "redirect_url": "/dotnet/core/tutorials/library-with-visual-studio" + }, + { + "source_path_from_root": "/docs/core/tutorials/target-dotnetcore-with-msbuild.md", + "redirect_url": "/dotnet/core/tools/dotnet-migrate" + }, + { + "source_path_from_root": "/docs/core/tutorials/using-on-mac-vs-full-solution.md", + "redirect_url": "/dotnet/core/tutorials/library-with-visual-studio-code" + }, + { + "source_path_from_root": "/docs/core/tutorials/using-on-mac-vs.md", + "redirect_url": "/dotnet/core/tutorials/with-visual-studio-code" + }, + { + "source_path_from_root": "/docs/core/tutorials/using-on-macos.md", + "redirect_url": "/dotnet/core/tutorials/library-with-visual-studio-code" + }, + { + "source_path_from_root": "/docs/core/tutorials/using-on-windows-full-solution.md", + "redirect_url": "/dotnet/core/tutorials/with-visual-studio" + }, + { + "source_path_from_root": "/docs/core/tutorials/using-on-windows.md", + "redirect_url": "/dotnet/core/tutorials/with-visual-studio" + }, + { + "source_path_from_root": "/docs/core/tutorials/using-with-xplat-cli.md", + "redirect_url": "/dotnet/core/tutorials/with-visual-studio-code" + }, + { + "source_path_from_root": "/docs/core/tutorials/vb-library-with-visual-studio.md", + "redirect_url": "/dotnet/core/tutorials/library-with-visual-studio" + }, + { + "source_path_from_root": "/docs/core/tutorials/vb-with-visual-studio.md", + "redirect_url": "/dotnet/core/tutorials/with-visual-studio" + }, + { + "source_path_from_root": "/docs/core/tutorials/debugging-with-visual-studio-mac.md", + "redirect_url": "/dotnet/core/tutorials/debugging-with-visual-studio-code" + }, + { + "source_path_from_root": "/docs/core/tutorials/library-with-visual-studio-mac.md", + "redirect_url": "/dotnet/core/tutorials/library-with-visual-studio-code" + }, + { + "source_path_from_root": "/docs/core/tutorials/publishing-with-visual-studio-mac.md", + "redirect_url": "/dotnet/core/tutorials/publishing-with-visual-studio-code" + }, + { + "source_path_from_root": "/docs/core/tutorials/testing-library-with-visual-studio-mac.md", + "redirect_url": "/dotnet/core/tutorials/testing-library-with-visual-studio-code" + }, + { + "source_path_from_root": "/docs/core/tutorials/with-visual-studio-mac.md", + "redirect_url": "/dotnet/core/tutorials/with-visual-studio-code" + }, + { + "source_path_from_root": "/docs/core/unmanaged-api/metadata/enumerations/assemblyrefflags-enumeration.md", + "redirect_url": "/dotnet/core/unmanaged-api/metadata/enumerations/corassemblyflags-enumeration" + }, + { + "source_path_from_root": "/docs/core/versions/install-management.md", + "redirect_url": "/dotnet/core/install/remove-runtime-sdk-versions" + }, + { + "source_path_from_root": "/docs/core/versions/lts-current.md", + "redirect_url": "https://dotnet.microsoft.com/platform/support/policy/dotnet-core" + }, + { + "source_path_from_root": "/docs/core/versions/remove-runtime-sdk-versions.md", + "redirect_url": "/dotnet/core/install/remove-runtime-sdk-versions" + }, + { + "source_path_from_root": "/docs/core/versions/servicing.md", + "redirect_url": "/dotnet/core/versions" + }, + { + "source_path_from_root": "/docs/core/versions/version-history.md", + "redirect_url": "/dotnet/core/versions/selection" + }, + { + "source_path_from_root": "/docs/whats-new/dotnet-7-docs.md", + "redirect_url": "/dotnet/whats-new" + }, + { + "source_path_from_root": "/docs/core/whats-new/dotnet-8.md", + "redirect_url": "/dotnet/core/whats-new/dotnet-8/overview", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/whats-new/index.md", + "redirect_url": "/dotnet/core/whats-new/dotnet-11/overview", + "ms.custom": "updateeachrelease" + }, + { + "source_path_from_root": "/docs/core/whats-new/whats-new-in-core-20.md", + "redirect_url": "/dotnet/core/whats-new/dotnet-core-2-0" + }, + { + "source_path_from_root": "/docs/core/windows-prerequisites.md", + "redirect_url": "/dotnet/core/install/windows#dependencies" + }, + { + "source_path_from_root": "/docs/core/tools/using-ci-with-cli.md", + "redirect_url": "/dotnet/devops/dotnet-cli-and-continuous-integration" + }, + { + "source_path_from_root": "/docs/core/extensions/http-client.md", + "redirect_url": "/dotnet/core/extensions/http-client-factory" + }, + { + "source_path_from_root": "/docs/fundamentals/networking/tcp/tcp-services.md", + "redirect_url": "/dotnet/fundamentals/networking/sockets/tcp-classes" + }, + { + "source_path_from_root": "/docs/fundamentals/networking/tcp/tcp-overview.md", + "redirect_url": "/dotnet/fundamentals/networking/sockets/tcp-classes" + }, + { + "source_path_from_root": "/docs/core/docker/publish-as-container.md", + "redirect_url": "/dotnet/core/containers/sdk-publish" + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-fsharp-with-dotnet-test.md", + "redirect_url": "/dotnet/core/testing/unit-testing-fsharp-with-xunit" + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-architecture-capabilities.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-architecture-capabilities" + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-architecture-extensions.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-architecture-extensions" + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-architecture-services.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-architecture-services" + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-architecture.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-architecture" + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-config.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-config" + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-diagnostics.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-crash-hang-dumps" + }, + { + "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-diagnostics.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-crash-hang-dumps", + "redirect_document_id": false + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-exit-codes.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes" + }, + { + "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-exit-codes.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes", + "redirect_document_id": false + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-extensions-code-coverage.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-code-coverage" + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-extensions-diagnostics.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-crash-hang-dumps" + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-extensions-fakes.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-fakes" + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-faq.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-troubleshooting" + }, + { + "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-faq.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-troubleshooting", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-extensions-hosting.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-hot-reload" + }, + { + "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-hosting.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-hot-reload", + "redirect_document_id": false + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-extensions-output.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-terminal-output" + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-extensions-policy.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-retry" + }, + { + "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-policy.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-retry", + "redirect_document_id": false + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-extensions-test-reports.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-test-reports" + }, + { + "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-test-reports.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-test-reports", + "redirect_document_id": false + }, + { + "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-output.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-terminal-output", + "redirect_document_id": false + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-extensions-vstest-bridge.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-extensions-vstest-bridge" + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-extensions.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-features" + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-extensions-faq.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-extensions-faq" + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-integration-dotnet-test.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-integration-dotnet-test" + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-intro.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-intro" + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-telemetry.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-telemetry" + }, + { + "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-features", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-reporting.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-test-reports", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-diagnostics.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-crash-hang-dumps", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-code-coverage.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-code-coverage", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-open-telemetry.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-open-telemetry", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-retry.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-retry", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-hot-reload.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-hot-reload", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-fakes.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-fakes", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-extensions-telemetry.md", + "redirect_url": "/dotnet/core/testing/microsoft-testing-platform-telemetry", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-platform-vs-vstest.md", + "redirect_url": "/dotnet/core/testing/test-platforms-overview" + }, + { + "source_path_from_root": "/docs/core/testing/microsoft-testing-platform-vs-vstest.md", + "redirect_url": "/dotnet/core/testing/test-platforms-overview", + "redirect_document_id": true + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-published-output.md", + "redirect_url": "/dotnet/core/tools/dotnet-vstest" + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-visual-basic-with-dotnet-test.md", + "redirect_url": "/dotnet/core/testing/unit-testing-visual-basic-with-xunit" + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-with-mstest.md", + "redirect_url": "/dotnet/core/testing/unit-testing-csharp-with-mstest" + }, + { + "source_path_from_root": "/docs/core/testing/unit-testing-with-nunit.md", + "redirect_url": "/dotnet/core/testing/unit-testing-csharp-with-nunit" + }, + { + "source_path_from_root": "/docs/core/compatibility/sdk/9.0/nugetaudit-transitive-packages.md", + "redirect_url": "/dotnet/core/compatibility/sdk/10.0/nugetaudit-transitive-packages" + } + ] } From 0d2faecfa608cac6c4846f2c8f493a736b76b292 Mon Sep 17 00:00:00 2001 From: "Andy De George (from Dev Box)" Date: Thu, 19 Mar 2026 15:39:10 -0700 Subject: [PATCH 4/7] Update date --- docs/core/porting/includes/github-copilot-suggestion.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/porting/includes/github-copilot-suggestion.md b/docs/core/porting/includes/github-copilot-suggestion.md index 9222a8282d057..2f09cb17abfe1 100644 --- a/docs/core/porting/includes/github-copilot-suggestion.md +++ b/docs/core/porting/includes/github-copilot-suggestion.md @@ -1,7 +1,7 @@ --- author: adegeo ms.author: adegeo -ms.date: 11/07/2025 +ms.date: 03/19/2026 ms.topic: include --- From 957fcc8221a4d23f99f8ff3b061caacb94a5a4f2 Mon Sep 17 00:00:00 2001 From: "Andy De George (from Dev Box)" Date: Thu, 19 Mar 2026 16:04:58 -0700 Subject: [PATCH 5/7] Remove the WCF link --- docs/core/porting/upgrade-assistant-overview.md | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/core/porting/upgrade-assistant-overview.md b/docs/core/porting/upgrade-assistant-overview.md index f750597f68d89..823eb02ea96d6 100644 --- a/docs/core/porting/upgrade-assistant-overview.md +++ b/docs/core/porting/upgrade-assistant-overview.md @@ -42,7 +42,6 @@ Some products provide guidance on how to use .NET Upgrade Assistant. - [Windows Presentation Foundation](/dotnet/desktop/wpf/migration/) - [Windows Forms](/dotnet/desktop/winforms/migration/) - [Universal Windows Platform](/windows/apps/windows-app-sdk/migrate-to-windows-app-sdk/upgrade-assistant) -- [Windows Communication Foundation](../../core/porting/upgrade-assistant-wcf.md) ## Upgrade paths From dbdc145f84675d275c61055207b1546c6a20a47d Mon Sep 17 00:00:00 2001 From: "Andy (Steve) De George" <67293991+adegeo@users.noreply.github.com> Date: Fri, 20 Mar 2026 11:03:49 -0700 Subject: [PATCH 6/7] Apply suggestion from @gewarren Co-authored-by: Genevieve Warren <24882762+gewarren@users.noreply.github.com> --- docs/core/porting/upgrade-assistant-install.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/core/porting/upgrade-assistant-install.md b/docs/core/porting/upgrade-assistant-install.md index 5b765ece76072..d4e49a7b49cd3 100644 --- a/docs/core/porting/upgrade-assistant-install.md +++ b/docs/core/porting/upgrade-assistant-install.md @@ -38,7 +38,7 @@ The following steps enable the legacy Upgrade Assistant in Visual Studio. If the **Open Recent \ Get Started** window opens, select the **Continue without code** link. -01. Select the **Tools** > **Options** menu, which opens the **Options** window.\ +01. Select the **Tools** > **Options** menu, which opens the **Options** window. 01. Navigate to **All Settings** > **Projects and Solutions** > **Modernization**. 01. Select the **Enable legacy Upgrade Assistant** item. 01. Restart Visual Studio From 1a81980be2657016c68a13cf07e9fed6cf5b1f14 Mon Sep 17 00:00:00 2001 From: "Andy De George (from Dev Box)" Date: Fri, 20 Mar 2026 11:04:39 -0700 Subject: [PATCH 7/7] feedback --- docs/core/porting/upgrade-assistant-overview.md | 4 ++-- docs/navigate/migration-guide/toc.yml | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/docs/core/porting/upgrade-assistant-overview.md b/docs/core/porting/upgrade-assistant-overview.md index 823eb02ea96d6..df7f54c1fef3b 100644 --- a/docs/core/porting/upgrade-assistant-overview.md +++ b/docs/core/porting/upgrade-assistant-overview.md @@ -12,9 +12,9 @@ ms.date: 03/19/2026 # What is .NET Upgrade Assistant? -.NET Upgrade Assistant helps upgrade projects to newer versions of .NET and analyzes your code to spot and fix potential incompatibilities. One focus of the tool is to help upgrading a project from .NET Framework, .NET Core, or .NET, to the latest version of .NET. You use .NET Upgrade Assistant to upgrade entire .NET projects, or some aspect of the project, such upgrading a configuration file from an older type to a newer type. +.NET Upgrade Assistant helps upgrade projects to newer versions of .NET and analyzes your code to spot and fix potential incompatibilities. One focus of the tool is to help upgrade a project from .NET Framework, .NET Core, or .NET, to the latest version of .NET. You use .NET Upgrade Assistant to upgrade entire .NET projects, or some aspect of the project, such as upgrading a configuration file from an older type to a newer type. -.NET Upgrade Assistant is built into Visual Studio or can be installed as a command-line interface (CLI) tool. +.NET Upgrade Assistant is built into Visual Studio and can be installed as a command-line interface (CLI) tool. [!INCLUDE [github-copilot-suggestion](includes/github-copilot-suggestion.md)] diff --git a/docs/navigate/migration-guide/toc.yml b/docs/navigate/migration-guide/toc.yml index 09e36f97555ad..a53b8b0e31ea4 100644 --- a/docs/navigate/migration-guide/toc.yml +++ b/docs/navigate/migration-guide/toc.yml @@ -120,7 +120,5 @@ items: href: /dotnet/desktop/winforms/migration/ - name: Universal Windows Platform href: /windows/apps/windows-app-sdk/migrate-to-windows-app-sdk/upgrade-assistant - - name: Windows Communication Foundation - href: ../../core/porting/upgrade-assistant-wcf.md - name: Telemetry href: ../../core/porting/upgrade-assistant-telemetry.md