Eseguire la migrazione da Windows Form .NET Framework a .NET
Questo articolo descrive come aggiornare un'app desktop Windows Form a .NET tramite Assistente aggiornamento .NET. Windows Form rimane un framework solo Windows, anche se .NET è una tecnologia multipiattaforma.
Prerequisiti
- Sistema operativo Windows.
- Scaricare ed estrarre l'app demo usata con questo articolo.
- Visual Studio 2022 versione 17.12 o successiva per .NET 9.
- Estensione .NET Upgrade Assistant per Visual Studio.
Valutazione
È consigliabile analizzare i progetti prima di eseguire un aggiornamento. L'esecuzione di analisi del codice sui progetti con .NET Upgrade Assistant genera un report a cui è possibile fare riferimento per identificare potenziali blocchi di migrazione.
Per analizzare i progetti e generare un report, fare clic con il pulsante destro del mouse sul file della soluzione in Esplora soluzioni e selezionare Aggiorna. Per altre informazioni sull'esecuzione di un'analisi, vedere Analizzare i progetti con .NET Upgrade Assistant.
Eseguire la migrazione delle dipendenze
Se si aggiornano più progetti, iniziare con i progetti che non hanno dipendenze. Nell'esempio di gioco corrispondente il progetto MatchingGame dipende dalla libreria MatchingGame.Logic , quindi MatchingGame.Logic deve essere aggiornato per primo.
Suggerimento
Assicurarsi di disporre di un backup del codice, ad esempio nel controllo del codice sorgente o in una copia.
Usare la procedura seguente per aggiornare un progetto in Visual Studio:
Fare clic con il pulsante destro del mouse sul progetto MatchingGame.Logic nella finestra Esplora soluzioni e scegliere Aggiorna:
Viene aperta una nuova scheda che richiede di scegliere l'aggiornamento da eseguire.
Selezionare Aggiornamento del progetto sul posto.
Selezionare quindi il framework di destinazione.
In base al tipo di progetto che si sta aggiornando, vengono presentate diverse opzioni. .NET Standard 2.0 può essere usato sia da .NET Framework che da .NET. Questa è una buona scelta se la libreria non si basa su una tecnologia desktop come Windows Form, che questo progetto esegue.
Selezionare .NET 9.0 e quindi avanti.
Viene visualizzato un albero con tutti gli artefatti correlati al progetto, ad esempio file di codice e librerie. È possibile aggiornare singoli artefatti o l'intero progetto, ovvero l'impostazione predefinita. Selezionare Aggiorna selezione per avviare l'aggiornamento.
Al termine dell'aggiornamento, vengono visualizzati i risultati:
Gli artefatti con un cerchio verde solido sono stati aggiornati mentre i cerchi verdi vuoti sono stati ignorati. Gli artefatti ignorati indicano che l'assistente all'aggiornamento non ha trovato nulla da aggiornare.
Ora che la libreria di supporto dell'app è stata aggiornata, aggiornare l'app principale.
Note per i progetti Visual Basic
Attualmente, l'Assistente aggiornamento .NET non riconosce l'uso di nel file di System.Configuration
impostazioni creato dai modelli di Visual Basic in .NET Framework. Non rispetta inoltre l'uso delle My
estensioni usate nei progetti .NET Framework, ad esempio My.Computer
e My.User
. Queste estensioni sono state rimosse in .NET. A causa di questi due problemi, una libreria di Visual Basic non verrà compilata dopo la migrazione con .NET Upgrade Assistant.
Per risolvere questo problema, il progetto deve avere come destinazione Windows e fare riferimento Windows Form.
- Al termine della migrazione, fare doppio clic sul progetto MatchingGame.Logic nella finestra Esplora soluzioni.
- Individuare l'elemento
<Project>/<PropertyGroup>
. - Nell'editor XML modificare il valore di
<TargetFramework>
danet9.0
anet9.0-windows
. - Aggiungere
<UseWindowsForms>true</UseWindowsForms>
alla riga dopo<TargetFramework>
.
Le impostazioni del progetto dovrebbero essere simili al frammento di codice seguente:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net9.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
<OutputType>Library</OutputType>
<MyType>Windows</MyType>
... other settings removed for brevity ...
Eseguire la migrazione del progetto principale
Dopo l'aggiornamento di tutte le librerie di supporto, è possibile aggiornare il progetto principale dell'app. Con l'app di esempio è disponibile un solo progetto di libreria da aggiornare, che è stato aggiornato nella sezione precedente.
- Fare clic con il pulsante destro del mouse sul progetto MatchingGame nella finestra Esplora soluzioni e scegliere Aggiorna:
- Selezionare Aggiornamento del progetto sul posto.
- Selezionare .NET 9.0 per il framework di destinazione e selezionare Avanti.
- Lasciare selezionati tutti gli artefatti e selezionare Aggiorna selezione.
Al termine dell'aggiornamento, vengono visualizzati i risultati. Si noti che il progetto Windows Form ha un simbolo di avviso. Espandere l'elemento e vengono visualizzate altre informazioni su questo passaggio:
Si noti che il componente di aggiornamento del progetto indica che il tipo di carattere predefinito è stato modificato. Poiché il tipo di carattere potrebbe influire sul layout del controllo, è necessario controllare ogni modulo e controllo personalizzato nel progetto per assicurarsi che l'interfaccia utente sia disposta correttamente.
Generare una compilazione pulita
Dopo l'aggiornamento del progetto principale, eseguirne la pulizia e la compilazione.
- Fare clic con il pulsante destro del mouse sul progetto MatchingGame nella finestra Esplora soluzioni e scegliere Pulisci.
- Fare clic con il pulsante destro del mouse sul progetto MatchingGame nella finestra Esplora soluzioni e scegliere Compila.
Se l'applicazione ha rilevato errori, è possibile trovarli nella finestra Elenco errori con una raccomandazione su come risolverli.
Il progetto di esempio di gioco corrispondente Windows Form viene ora aggiornato a .NET 9.
Esperienza post-aggiornamento
Se si esegue la conversione di un'app da .NET Framework a .NET, vedere l'articolo Modernizzare dopo l'aggiornamento a .NET da .NET Framework .
Contenuto correlato
Conversione da .NET Framework a .NET.
La guida alla conversione offre una panoramica degli aspetti da considerare per la conversione del codice da .NET Framework a .NET. La complessità dei progetti determina la quantità di lavoro da eseguire dopo la migrazione iniziale dei file di progetto.
Modernizzare dopo l'aggiornamento a .NET da .NET Framework.
Il mondo di .NET è cambiato molto da .NET Framework. Questo collegamento fornisce alcune informazioni su come modernizzare l'app dopo l'aggiornamento.
.NET Desktop feedback