Migrating C# Visual Studio 2022 (17.8) from .NET 4.7 to .NET 8

Saga 506 Reputation points
2026-07-05T18:57:48.3233333+00:00

How do I migrate my C3 project from .NET 4.7 to .NET 8?

Google says to use .NET Upgrade Assistant, but I did not find this component in Extensions Manager.

Developer technologies | .NET | Other

Answer accepted by question author
Bruce (SqlWork.com) 84,951 Reputation points
2026-07-06T15:40:32.7066667+00:00

the upgrade assistance was depreciated and removed from visual studio and replaced with copilot migration. as copilot is not free, there were many complaints, and the upgrade assistance was brought back as a visual studio extension (but with no ongoing support):

https://marketplace.visualstudio.com/items?itemName=ms-dotnettools.upgradeassistant

the success of either method depends on the type of project.

  • console app - pretty simple
  • winform app - straight forward
  • asp.net MVC - depends on coding style. use of HttpContext.Current causes issues. asp.net core is fussier on binding, so you may have runtime issues.
  • webform - requires a rewrite. the migration setups a proxy project in asp.net core, so the the site can be migrated a page at a time. copilot may help migrating each webform page to the chosen replacement technology.

suggestions: before migration

  • convert all library projects to .netstandard 2.0.
  • move from System.Data.SqlClient to Microsoft.Data.SqlClient
  • migrate from HttpWebRequest to HttpClient
  • remove all references to HttpContext.Current

Was this answer helpful?

2 people found this answer helpful.

Answer accepted by question author
Tom Tran (WICLOUD CORPORATION) 5,705 Reputation points Microsoft External Staff Moderator
2026-07-06T04:01:00.46+00:00

Hi @Saga ,

The .NET Upgrade Assistant is not installed from the Visual Studio Installer components list. It is installed either as a Visual Studio extension or as a command-line tool.

For Visual Studio 2022 17.8, try installing it from Extensions → Manage Extensions → Browse by searching for .NET Upgrade Assistant. If it does not appear in the extension search, you can install it directly from the .NET Upgrade Assistant Marketplace page.

You can also install the command-line version:

dotnet tool install -g upgrade-assistant

If the install fails because of custom NuGet feeds, try this instead:

dotnet tool install -g upgrade-assistant --ignore-failed-sources

Microsoft documents this option in the .NET Upgrade Assistant install guide.

After the tool is available, open your solution in Visual Studio, right-click the project in Solution Explorer, and choose Upgrade. From there, you can select .NET 8 as the target framework.

One thing to keep in mind: moving from .NET Framework 4.7 to .NET 8 may still require manual code changes after the tool runs, especially if the project uses older framework-specific APIs or packages.

If you found my response helpful or informative, I would greatly appreciate it if you could follow this guidance. Thank you. 

Was this answer helpful?

1 person found this answer helpful.

1 additional answer

Sort by: Most helpful
  1. AI answer

    2026-07-05T18:58:15.4066667+00:00

    For migrating a C# project from .NET Framework 4.7 to .NET 8 in Visual Studio 2022 (17.8), .NET Upgrade Assistant is now deprecated and not exposed as a normal extension. The recommended path is to use the GitHub Copilot app modernization agent, or, if necessary, enable/use the legacy Upgrade Assistant that is built into Visual Studio or install it as a .NET global tool.

    The GitHub Copilot app modernization agent is the recommended tool for upgrading to newer .NET versions:

    • It analyzes projects and dependencies.
    • Produces a step-by-step migration plan with targeted recommendations and automated code fixes.
    • Applies common porting tasks (project file updates, deprecated API replacement, build issue fixes).

    Use this agent when running Visual Studio 2022 17.14.16 or later or Visual Studio 2026. For details, see the "GitHub Copilot app modernization (recommended)" section in the upgrading overview.

    Using the legacy .NET Upgrade Assistant in Visual Studio

    If GitHub Copilot app modernization is not available, the legacy Upgrade Assistant can still be enabled inside Visual Studio:

    1. Open Visual Studio.
    2. Go to Tools > Options.
    3. Navigate to All Settings > Projects and Solutions > Modernization.
    4. Check Enable legacy Upgrade Assistant.
    5. Restart Visual Studio.

    After enabling:

    1. Back up the code.
    2. Open the solution in Visual Studio.
    3. In Solution Explorer, right-click the project to upgrade and select Upgrade.
    4. In the Upgrade tab:
      • Choose Upgrade project to a newer .NET version (or equivalent option for the project type).
      • Select In-place project upgrade (or other upgrade type as appropriate).
      • Select target framework, for example .NET 8.0.
      • Select the components to upgrade and then choose Upgrade selection.
    5. Review the list of processed items and then fix any remaining manual issues.

    Using .NET Upgrade Assistant as a .NET global tool

    If Visual Studio integration is not available, the Upgrade Assistant can be installed as a .NET global tool:

    1. Open a command prompt where dotnet is in PATH.
    2. Install the tool:
         dotnet tool install -g upgrade-assistant
      
      If there are custom NuGet sources that cause errors, use:
         dotnet tool install -g --ignore-failed-sources upgrade-assistant
      
    3. Run upgrade-assistant against the solution or project file to start the interactive upgrade.

    Notes

    • .NET Upgrade Assistant is deprecated and no longer actively developed; use it only when GitHub Copilot app modernization cannot be used.
    • Some project types (ASP.NET, WPF, Windows Forms, UWP, etc.) have specific guidance linked from the Upgrade Assistant overview.
    • After the automated upgrade, manual code changes may still be required depending on the complexity of the project.

    References:

    AI-generated content may be incorrect. Read our transparency notes for more information.

    Was this answer helpful?

Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.