Edit

Share via


GitHub Copilot app modernization - upgrade for .NET FAQ

GitHub Copilot app modernization - upgrade for .NET is an interactive GitHub Copilot extension that adds powerful upgrade capabilities to Visual Studio. This article answers frequently asked questions. For more information about the tool, see What is GitHub Copilot app modernization - upgrade for .NET?.

The tool requires one of the following GitHub Copilot subscriptions:

  • Copilot Pro
  • Copilot Pro+
  • Copilot Business
  • Copilot Enterprise

What can the tool do?

Currently, GitHub Copilot app modernization - upgrade for .NET helps you upgrade your .NET projects to newer versions of .NET. The tool is an extension for Visual Studio that performs the following steps in a GitHub Copilot chat session:

  • Analyzes your projects and proposes an upgrade plan.
  • According to the plan, runs a series of tasks to upgrade your projects.
  • Operates in a working branch under a local Git repository.
  • Automatically fixes issues during the code transformation.
  • Reports progress and allow access to code changes & logs.
  • Learns from the interactive experience with you (within the context of the session) to improve subsequent transformations.

What can the tool upgrade?

GitHub Copilot app modernization - upgrade for .NET currently focuses on migrating your projects from one version of .NET to another. For example, upgrading from .NET Core 3.1 or .NET 6, to .NET 9. It also upgrades dependencies and fixes errors in the code post-migration.

Besides upgrading the target framework, the tool can work with the following types of projects:

  • Azure Functions.
  • Console apps and class libraries.
  • Web technologies such as:
    • MVC
    • Blazor
    • Razor Pages
    • Web API
  • Desktop technologies such as Windows Forms and Windows Presentation Foundation.
  • Test projects such as MSTest and NUnit.

What limitations are there?

  • It doesn't support .NET Framework projects. (First upgrade the project to .NET with the Upgrade Assistant tool.)
  • Only Git repositories are supported.
  • There's no guarantee that the upgrade suggestions are considered best practices.
  • The LLM doesn't persist learning from the upgrade. Meaning, code fixes and corrections you provide during the upgrade process don't persist and can't be remembered for future upgrades.
  • It only runs on Windows.

What data is collected?

The tool only collects telemetry information about project types, intent to upgrade, and upgrade duration. The data is aggregated through Visual Studio itself and doesn't contain any user-identifiable information. For more information about Microsoft's privacy policy, see Visual Studio Customer Experience Improvement Program.

Can I disable telemetry?

Yes, you can disable telemetry. In Visual Studio, select Help > Privacy > Privacy Settings > "No, I would not like to participate."

Can I train the model based on my code base?

No. Unlike traditional AI tools where you might enter freeform prompts, the tool operates in a more structured way. The AI is embedded within the build-and-fix process, meaning the prompts it uses are predefined and tied to the upgrade plan. So it's not something you can train on your codebase, and it's not something you can manually steer with custom instructions, beyond the changes you can make to the plan Markdown file.

However, the tool does have some adaptability within a session. If you manually adjust a fix, it learns from that interaction in the short term and applies similar corrections if it encounters the same issue again. Think of it as refining its approach within the scope of that upgrade. We never store a user's codebase and never use your code for training the model. Once an upgrade is complete, session data is deleted and not stored.