Upgrading a .NET application isn’t a single prompt.
Every upgrade begins with understanding your application, evaluating dependencies, planning the work, applying code transformations, fixing build failures, and validating the results. Each phase uncovers new information that shapes the work that follows. A dependency update can uncover compatibility issues, a build failure can change the next task, and dependencies between projects can change the order of work.
GitHub Copilot upgrade carries out that workflow. The GitHub Copilot upgrade agent assesses your application, generates a structured upgrade plan, creates implementation tasks, and executes the work.
Now you can follow that workflow in the GitHub Copilot app through an interactive upgrade canvas. Instead of piecing together progress across chat, generated Markdown artifacts, and code changes, the upgrade canvas gives you a live view of the modernization workflow as it unfolds.
The result is a .NET modernization experience that’s easier to follow, easier to review, and easier to steer.
From assessment to execution
The GitHub Copilot upgrade agent starts by assessing your .NET application and identifying what needs to change:
- What version of .NET is this application targeting?
- Which NuGet packages need to be updated?
- Are there breaking API changes?
- Which projects can be upgraded independently?
- What should happen first?
From there, the agent generates a structured upgrade plan and breaks the work into actionable implementation tasks. As execution begins, the canvas reflects the latest state of the upgrade, including the assessment, upgrade plan, implementation tasks, execution progress, code changes, build failures, and final results.
Instead of asking the agent to summarize what happened or piecing together progress from generated artifacts, you can follow the modernization effort from assessment through execution in a single view.
Available wherever you work
While the GitHub Copilot app provides the interactive upgrade canvas, GitHub Copilot upgrade is also available across the developer tools you already use:
- Visual Studio – Built directly into Visual Studio. Right-click your solution or project in Solution Explorer and select Modernize to start a .NET upgrade.
- Visual Studio Code – Install the GitHub Copilot upgrade extension, select the Upgrade agent from the agent picker dropdown, and prompt it to modernize your .NET application.
- GitHub Copilot CLI – Install the GitHub Copilot upgrade plugin to assess, plan, and execute .NET upgrades directly from the terminal.
Whether you prefer working in an IDE, the terminal, or the GitHub Copilot app, you can use the same upgrade workflow across every surface.
Get started
Getting started takes just a few clicks.
- Add the GitHub Copilot upgrade marketplace. If you don’t already have the GitHub Copilot app installed, you’ll be prompted to install it first.
- In the Add plugin marketplace? dialog, select Allow to add the microsoft/upgrade-agent-plugins.
- In the Plugins window, select Add marketplace.
- Select Install for the upgrade-agent plugin.
- Open your repository, start a new agent session, and select the Upgrade agent from the agent picker dropdown.
To open the interactive upgrade canvas:
- In the upper-right corner of the GitHub Copilot app, select the review panel icon (Toggle review panel).
- In the review panel, select + (Open in panel).
- Choose Upgrade Dashboard.
The Upgrade Dashboard opens an interactive upgrade canvas where you can assess your application, review the upgrade plan, track execution, and monitor your modernization effort from start to finish.
Try it on your next .NET upgrade, and share your feedback or ideas in the GitHub Copilot upgrade repository.
Having just tried this tool, yet again, to upgrade a NET Framework to NET Core web API I still think it is pretty bad experience. Let's start with the enormous amount of markdown files it generates for planning, every task, etc. Every single one of these opens in the VS editor and you have to approve it. It is overwhelming and slow.
Moving on to the actual upgrade it really struggles to do even simple things. Upgrading a class library is straightforward and it rarely has issues. But once it hits the ASPNET/Core projects it struggles. It can generate a boilerplate...
Thanks for taking the time to share such detailed feedback.
I'd love to learn a bit more about your setup. Which version of Visual Studio were you using, and which model did you have selected for the upgrade? I'm especially interested in the ASP.NET/Core migration scenarios you mentioned, since that's an area we're continuing to improve.
If you remember any of the prompts or instructions you gave the agent (especially around Autofac and avoiding System.Web adapters), I'd be interested in seeing those as well. Understanding where the agent didn't follow your intent helps us improve the experience.
And if you can reproduce the...