Panoramica di .NET Upgrade Assistant

Vengono rilasciate varie nuove versioni di .NET nel corso dell'anno, con una versione principale una volta all'anno. .NET Upgrade Assistant consente di aggiornare le app dalle versioni precedenti di .NET, .NET Core e .NET Framework alla versione più recente.

.NET Upgrade Assistant è un'estensione di Visual Studio e uno strumento da riga di comando progettato per facilitare l'aggiornamento delle app alla versione più recente di .NET.

I problemi relativi a .NET Upgrade Assistant possono essere registrati dall'interno di Visual Studio selezionando Guida>Invia commenti e suggerimenti>Segnala un problema.

Installare Upgrade Assistant

.NET Upgrade Assistant può essere installato come estensione di Visual Studio o come strumento da riga di comando .NET. Per altre informazioni, vedere Installare .NET Upgrade Assistant.

Lingue supportate

Sono supportati i linguaggi di programmazione seguenti:

  • C#
  • Visual Basic

Progetti supportati

Sono supportati i tipi di progetto seguenti:

  • ASP.NET
  • Funzioni di Azure
  • Windows Presentation Foundation
  • Windows Form
  • Librerie di classi
  • App console
  • UWP .NET Native
  • Xamarin.Forms
  • .NET MAUI

Percorsi di aggiornamento

Sono supportati i percorsi di aggiornamento seguenti:

  • Da .NET Framework a .NET
  • Da .NET Core a .NET
  • Da UWP a WinUI 3
  • Da una versione precedente di .NET alla versione più recente di .NET
  • Da Funzioni di Azure v1-v3 alla versione 4 isolata
  • Da Xamarin Forms a .NET MAUI
    • Le trasformazioni di file XAML supportano solo l'aggiornamento degli spazi dei nomi. Per trasformazioni più complete, usare Visual Studio 2022 versione 17.6 o successiva.

Eseguire l'aggiornamento con l'estensione di Visual Studio

Dopo aver installato l'estensione .NET Upgrade Assistant, fare clic con il pulsante destro del mouse sul progetto nella finestra Esplora soluzioni e scegliere Aggiorna.

Attenzione

Assicurarsi di eseguire il backup dei progetti prima dell'aggiornamento se non si usa il controllo del codice sorgente.

The .NET Upgrade Assistant's Upgrade menu item in Visual Studio.

Viene aperta una scheda che fornisce, in base al tipo di progetto, diversi stili di aggiornamento:

  • Aggiornamento del progetto sul posto

    Questa opzione aggiorna il progetto senza creare una copia.

  • Aggiornamento del progetto side-by-side

    Copia il progetto e aggiorna la copia, lasciando intatto il progetto originale.

  • Aggiornamento incrementale side-by-side

    Una buona scelta per app Web complesse. L'aggiornamento da ASP.NET a ASP.NET Core richiede un bel po' di lavoro e a volte il refactoring manuale. Questa modalità affianca un progetto .NET al progetto .NET Framework esistente e instrada gli endpoint implementati nel progetto .NET, mentre tutte le altre chiamate vengono inviate all'applicazione .NET Framework.

    Questa modalità consente di aggiornare lentamente le varie parti dell'app ASP.NET o libreria.

Dopo l'aggiornamento dell'app, viene visualizzata una schermata di stato che mostra tutti gli artefatti correlati al progetto associati all'aggiornamento. Ogni artefatto dell'aggiornamento può essere espanso per leggere altre informazioni sullo stato. Nell'elenco seguente vengono descritte le icone di stato:

  • Segno di spunta verde pieno: l'artefatto è stato aggiornato e completato correttamente.
  • Segno di spunta verde vuoto: lo strumento non ha trovato nulla dell'artefatto da aggiornare.
  • Simbolo di avviso giallo: l'artefatto è stato aggiornato, ma è necessario prendere in considerazione informazioni importanti.
  • X rossa: l'artefatto doveva essere aggiornato, ma l'aggiornamento non è riuscito.

The .NET Upgrade Assistant's Upgrade results tab in Visual Studio.

Inoltre, le azioni eseguite da Upgrade Assistant vengono registrate nella finestra Output sotto l'origine Upgrade Assistant, come illustrato nell'immagine seguente:

The output window in Visual Studio showing the results from the .NET Upgrade Assistant.

Dopo aver aggiornato il progetto, sarà necessario testarlo accuratamente.

Eseguire l'aggiornamento con lo strumento dell'interfaccia della riga di comando

Dopo aver installato lo strumento dell'interfaccia della riga di comando .NET Upgrade Assistant, aprire una finestra del terminale e passare alla directory contenente il progetto da aggiornare. È possibile usare il comando upgrade-assistant --help per visualizzare le opzioni disponibili fornite dall'interfaccia della riga di comando.

Attenzione

Assicurarsi di eseguire il backup dei progetti prima dell'aggiornamento se non si usa il controllo del codice sorgente.

Eseguire lo strumento con il comando upgrade-assistant upgrade. Vengono elencati tutti i progetti dalla cartella corrente e dalle relative sottocartelle. Lo strumento dell'interfaccia della riga di comando offre un modo interattivo per scegliere il progetto da aggiornare. Usare i tasti di direzione per selezionare un elemento e premere INVIO per eseguire l'elemento. Selezionare il progetto da aggiornare. Nell'esempio fornito in questo articolo sono presenti quattro progetti nella cartella corrente:

 Selected options
───────────────────────────────────────────────────────────
 No options specified, follow steps below to continue

 Steps
─────────────────
 Source project
─────────────────

Which project do you want to upgrade (found 9)?

> MatchingGame (winforms\MatchingGame\MatchingGame.csproj)
  MatchingGame.Logic (winforms\MatchingGame.Logic\MatchingGame.Logic.csproj)
  StarVoteControl (csharp\StarVoteControl\StarVoteControl.csproj)
  WebSiteRatings (csharp\WebSiteRatings\WebSiteRatings.csproj)

  Navigation
    Exit

A seconda del progetto da aggiornare, è possibile che venga visualizzata un'opzione per specificare come procedere con l'aggiornamento:

  • Aggiornamento del progetto sul posto

    Questa opzione aggiorna il progetto senza creare una copia.

  • Aggiornamento del progetto side-by-side

    Questa opzione è disponibile solo per i progetti .NET Framework. Copia il progetto e aggiorna la copia, lasciando intatto il progetto originale.

 Selected options
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 Source project     C:\Code\winforms\MatchingGame\MatchingGame.csproj

 Steps
───────────────────────────────
 Source project / Upgrade type
───────────────────────────────

How do you want to upgrade project MatchingGame?

> In-place project upgrade
  Side-by-side project upgrade

  Navigation
    Back
    Exit

Dopo questo passaggio, se sono presenti più framework di destinazione aggiornabili, si sceglierà una destinazione:

 Selected options
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
 Source project     C:\Code\Work\dotnet\dotnet-docs\docs\core\porting\snippets\upgrade-assistant-wpf-framework\winforms\MatchingGame\MatchingGame.csproj
 Ugrade type        Inplace

 Steps
──────────────────────────────────────────────────
 Source project / Ugrade type / Target framework
──────────────────────────────────────────────────

What is your preferred target framework?

> .NET 6.0 (Supported until November, 2024)
  .NET 7.0 (Supported until May, 2024)
  .NET 8.0 (Try latest preview features)

  Navigation
    Back
    Exit

Dopo aver aggiornato il progetto, sarà necessario testarlo accuratamente.