Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions docs/core/porting/github-copilot-app-modernization/faq.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,20 +6,21 @@ metadata:
author: adegeo
ms.author: adegeo
ms.topic: faq
ms.date: 09/15/2025
ms.date: 12/08/2025

title: GitHub Copilot app modernization FAQ
summary: |
GitHub Copilot app modernization is an interactive GitHub Copilot agent that adds powerful capabilities to Visual Studio. This article answers frequently asked questions. For more information about the modernization agent, see [What is GitHub Copilot app modernization](overview.md).

The tool requires one of the following GitHub Copilot subscriptions:

- Copilot Free (Starting with Visual Studio 2026 version 18.1)
- Copilot Pro
- Copilot Pro+
- Copilot Business
- Copilot Enterprise

GitHub Copilot app modernization is included in [Visual Studio 2026](https://visualstudio.microsoft.com/downloads/) (or Visual Studio 2022 version 17.14.17 or newer).
GitHub Copilot app modernization is included in [Visual Studio 2026](https://visualstudio.microsoft.com/downloads/) (or Visual Studio 2022 version 17.14.17 and newer).

sections:
- name: Modernization agent
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: "Learn how to apply custom upgrade instructions with GitHub Copilot
author: kschlobohm
ms.author: adegeo
ms.topic: how-to
ms.date: 10/09/2025
ms.date: 12/08/2025
ai-usage: ai-assisted

#customer intent: As a developer, I want to apply custom upgrade instructions during a .NET upgrade so that I can automate specific changes consistently.
Expand Down Expand Up @@ -80,7 +80,7 @@ Use these steps to incorporate an existing custom upgrade instruction into an up

1. In the **Solution Explorer** window, right-click the **solution** > **Modernize**.
1. In the chat, choose `Upgrade to a newer version of .NET`. Answer Copilot's questions until it generates the plan markdown file.
1. Review the generated plan. Confirm whether the intended transformation is already present. If it only lists a version bump, your custom instruction wasn't yet applied.
1. Review the generated plan. Confirm whether the intended transformation is already present. If it only lists a version bump, your custom instruction isn't yet applied.
1. In chat, explicitly reference the instruction using language similar to the file name. For example, "modify the plan using the custom instructions to replace Newtonsoft with System.Text.Json."
1. Wait for Copilot to confirm it retrieved the file. In chat, you see that it opened the markdown instruction file. If you don't see a reference, restate the request using the file's key verbs (replace, update, remove) and package names.
1. Review the plan file and verify that it includes the custom instruction's details.
Expand All @@ -89,7 +89,7 @@ Use these steps to incorporate an existing custom upgrade instruction into an up

For example, when replacing Newtonsoft, the plan switches from a version upgrade to replacing or removing the package.

The plan may have started as version upgrade, as illustrated in the following image:
The plan might start as a version upgrade, as shown in the following image:

:::image type="content" source="./media/how-to-custom-upgrade-instructions/visualstudio-copilot-upgrade6.png" alt-text="The screenshot shows the project-level (feature) actions added by the custom upgrade instruction. Projects that previously referenced Newtonsoft.Json are now slated for code refactoring to use System.Text.Json APIs.":::

Expand All @@ -104,9 +104,9 @@ Use these steps to incorporate an existing custom upgrade instruction into an up

### Tips for better activation

- Match the file's verb: if the file name uses replace, use that phrasing (not upgrade or fix).
- Match the file's verb: if the file name uses `replace`, use that phrasing (not `upgrade` or `fix`).
- Keep one transformation per file for clarity and reuse; sequence multiple files by listing prerequisites in each file.
- Ask Copilot to modify the plan rather than manually editing; this reduces the risk of breaking dependency ordering.
- Ask Copilot to modify the plan rather than manually editing; this approach reduces the risk of breaking dependency ordering.
- Avoid ambiguous requests like "improve the plan"; be explicit: "apply the replace_newtonsoft_with_system_text_json instructions."

## Validate the applied changes
Expand All @@ -119,7 +119,7 @@ After the upgrade completes:

## Clean up resources

If you created temporary instruction files for experimentation, remove or consolidate them to avoid overlapping transformations in future upgrades.
If you create temporary instruction files for experimentation, remove or consolidate them to avoid overlapping transformations in future upgrades.

## Related content

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: "Learn how to upgrade your .NET applications to newer versions usin
author: adegeo
ms.author: adegeo
ms.topic: how-to
ms.date: 09/15/2025
ms.date: 12/08/2025
ai-usage: ai-assisted

#customer intent: As a developer, I want to upgrade my .NET app using GitHub Copilot app modernization so that I can modernize my codebase efficiently with AI assistance.
Expand All @@ -31,7 +31,7 @@ The first step to upgrading is generating a plan by interacting with GitHub Copi

## Generate an upgrade plan

Once the process starts, Copilot analyzes your projects and their dependencies, and then asks you a series of questions about the upgrade. After you answer these questions, an upgrade plan is written in the form of a Markdown file.
When you start the process, Copilot analyzes your projects and their dependencies. It then asks you a series of questions about the upgrade. After you answer these questions, Copilot writes an upgrade plan as a Markdown file.

To generate and customize your plan:

Expand All @@ -41,7 +41,7 @@ To generate and customize your plan:
1. Tell Copilot to proceed with the upgrade when you're satisfied with the plan.

> [!CAUTION]
> The plan is generated based on the inter-dependencies of your projects. The upgrade won't succeed if you modify the plan in such a way that the migration path can't complete. For example, if **Project A** depends on **Project B** and you remove **Project B** from the upgrade plan, upgrading **Project A** might fail.
> The plan is generated based on the interdependencies of your projects. The upgrade won't succeed if you modify the plan in such a way that the migration path can't complete. For example, if **Project A** depends on **Project B** and you remove **Project B** from the upgrade plan, upgrading **Project A** might fail.

The following snippet demonstrates the structure of a plan:

Expand Down Expand Up @@ -80,7 +80,7 @@ NuGet packages used across all selected projects or their dependencies that need

## Perform the upgrade

Once an upgrade plan is ready, tell Copilot to start the upgrade. Once the upgrade process starts, Copilot lets you know what it's doing in the chat window and it opens the **Upgrade Progress Details** document, which lists the status of every step. If it runs into a problem, Copilot pauses and asks for your direction or help in fixing these problems.
When your upgrade plan is ready, tell Copilot to start the upgrade. Once the upgrade process starts, Copilot lets you know what it's doing in the chat window. It opens the **Upgrade Progress Details** document, which lists the status of every step. If it runs into a problem, Copilot pauses and asks for your direction or help in fixing these problems.

Each major step in the upgrade process is committed to the local Git repository.

Expand Down Expand Up @@ -146,7 +146,7 @@ The following example shows the report of a completed upgrade that contained a t
After completing the upgrade process:

- Review the generated upgrade report and any test results.
- Address any failing tests or compilation errors that might remain.
- Address any failing tests or compilation errors.
- Ensure all updated NuGet packages are compatible with your application.
- Test your application thoroughly to verify the upgrade was successful.
- Apply new features and improvements available in the upgraded .NET version.
Expand Down
17 changes: 5 additions & 12 deletions docs/includes/github-copilot-app-modernization-prereqs.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,21 @@
---
author: adegeo
ms.author: adegeo
ms.date: 09/23/2025
ms.date: 12/08/2025
ms.topic: include
# Shared by Azure.NET app mod and .NET app mod
---

- Windows Operating System
- [Visual Studio 2026](https://visualstudio.microsoft.com/downloads/) (or Visual Studio 2022 version 17.14.17 or newer).
- Windows Operating System.
- [Visual Studio 2026](https://visualstudio.microsoft.com/downloads/) (or Visual Studio 2022 version 17.14.17 and newer).
- [.NET desktop development workload](/visualstudio/install/modify-visual-studio?view=visualstudio&preserve-view=true#change-workloads-or-individual-components) with the following optional components enabled:

- GitHub Copilot
- GitHub Copilot app modernization for .NET

- Copilot license and supported subscription plan:
- GitHub Copilot Subscription (paid or free).

[Sign in to Visual Studio using a GitHub account](/visualstudio/ide/work-with-github-accounts) with [Copilot access](https://docs.github.com/copilot/about-github-copilot/what-is-github-copilot#getting-access-to-copilot).

Supported subscription plans:

- Copilot Pro
- Copilot Pro+
- Copilot Business
- Copilot Enterprise
- [Signed in to Visual Studio using a GitHub account](/visualstudio/ide/work-with-github-accounts) with [Copilot access](https://docs.github.com/copilot/get-started/plans#ready-to-choose-a-plan).

> [!IMPORTANT]
> If you change subscriptions, you must restart Visual Studio.
Expand Down