Migrieren von Windows Forms .NET Framework zu .NET
In diesem Artikel wird beschrieben, wie Sie eine Windows Forms-Desktop-App mithilfe des .NET-Upgrade-Assistenten auf .NET aktualisieren. Windows Forms bleibt ein Nur-Windows-Framework, obwohl .NET eine plattformübergreifende Technologie ist.
Voraussetzungen
- Windows-Betriebssystem.
- Laden Sie die demo-App herunter, die mit diesem Artikel verwendet wird, und extrahieren Sie sie.
- Visual Studio 2022, Version 17.12 oder höher, auf .NET 9 ausgerichtet.
- .NET Upgrade Assistant-Erweiterung für Visual Studio.
Bewertung
Sie sollten Ihre Projekte analysieren, bevor Sie ein Upgrade durchführen. Wenn Sie Codeanalyse für Ihre Projekte mit dem .NET-Upgrade-Assistenten durchführen, wird ein Bericht generiert, auf den Sie verweisen können, um potenzielle Migrationsblocker zu identifizieren.
Um Ihre Projekte zu analysieren und einen Bericht zu generieren, klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf die Lösungsdatei, und wählen Sie "Upgrade" aus. Weitere Informationen zum Ausführen einer Analyse finden Sie unter Analysieren von Projekten mit dem .NET-Upgrade-Assistenten.
Migrieren von Abhängigkeiten
Wenn Sie mehrere Projekte aktualisieren, beginnen Sie mit Projekten ohne Abhängigkeiten. Im Beispiel „Matching Game“ hängt das Projekt MatchingGame von der MatchingGame.Logic-Bibliothek ab, sodass MatchingGame.Logic zuerst aktualisiert werden sollte.
Tipp
Achten Sie darauf, dass Sie über eine Sicherung Ihres Codes verfügen, z. B. in der Quellcodeverwaltung oder in Form einer Kopie.
Führen Sie die folgenden Schritte aus, um ein Projekt in Visual Studio zu aktualisieren:
Klicken Sie im Fenster Projektmappen-Explorer mit der rechten Maustaste auf das MatchingGame.Logic-Projekt, und wählen Sie Upgrade aus:
Es wird eine neue Registerkarte geöffnet, die Sie auffordert, auszuwählen, welches Upgrade Sie ausführen möchten.
Wählen Sie Direktes Projektupgrade aus.
Wählen Sie dann das Zielframework aus.
Basierend auf dem Typ des Projekts, das Sie aktualisieren, werden Ihnen verschiedene Optionen angezeigt. .NET Standard 2.0 kann sowohl von .NET Framework als auch .NET verwendet werden. Dies ist eine gute Wahl, wenn die Bibliothek nicht auf eine Desktoptechnologie wie Windows Forms basiert, die dieses Projekt ausführt.
Wählen Sie .NET 9.0 und dann "Weiter" aus.
Daraufhin wird eine Struktur mit allen Artefakten im Zusammenhang mit dem Projekt angezeigt (z. B. Codedateien und Bibliotheken). Sie können einzelne Artefakte oder das gesamte Projekt upgraden. Letzteres ist die Standardeinstellung. Wählen Sie Auswahl upgraden aus, um das Upgrade zu starten.
Nach Abschluss des Upgrades werden die Ergebnisse angezeigt:
Für Artefakte mit einem gefüllten grünen Kreis wurde das Upgrade durchgeführt. Elemente mit einem leeren grünen Kreis wurden dagegen übersprungen. Übersprungene Artefakte bedeuten, dass der Upgrade-Assistent nichts gefunden hat, um ein Upgrade durchzuführen.
Nachdem nun das Upgrade für die unterstützende Bibliothek der App durchgeführt wurde, können Sie als Nächstes die Haupt-App upgraden.
Hinweise für Visual Basic-Projekte
Derzeit erkennt der .NET-Upgrade-Assistent nicht die Verwendung System.Configuration
in der Einstellungsdatei, die von den Visual Basic-Vorlagen in .NET Framework erstellt wurde. Es berücksichtigt auch nicht die Verwendung der Erweiterungen, die My
in .NET Framework-Projekten verwendet werden, wie My.Computer
z. B. und My.User
. Diese Erweiterungen wurden in .NET entfernt. Aufgrund dieser beiden Probleme wird eine Visual Basic-Bibliothek nach der Migration mit dem .NET-Upgrade-Assistenten nicht kompiliert.
Um dieses Problem zu beheben, muss das Projekt auf Windows ausgerichtet sein und auf Windows Forms verweisen.
- Doppelklicken Sie nach Abschluss der Migration im fenster Projektmappen-Explorer auf das MatchingGame.Logic-Projekt.
- Suchen Sie das
<Project>/<PropertyGroup>
-Element. - Ändern Sie im XML-Editor den Wert von
<TargetFramework>
"vonnet9.0
" innet9.0-windows
". - Fügen Sie
<UseWindowsForms>true</UseWindowsForms>
der Zeile nach<TargetFramework>
.
Die Projekteinstellungen sollten wie der folgende Codeausschnitt aussehen:
<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 ...
Migrieren des Hauptprojekts
Sobald alle unterstützenden Bibliotheken aktualisiert wurden, kann das Standard-App-Projekt aktualisiert werden. Bei der Beispiel-App gibt es nur ein Bibliotheksprojekt zum Upgrade, das im vorherigen Abschnitt aktualisiert wurde.
- Klicken Sie im Fenster Projektmappen-Explorer mit der rechten Maustaste auf das MatchingGame-Projekt, und wählen Sie Upgrade aus:
- Wählen Sie Direktes Projektupgrade aus.
- Wählen Sie .NET 9.0 für das Zielframework und dann "Weiter" aus.
- Lassen Sie alle Artefakte ausgewählt, und wählen Sie Auswahl upgraden aus.
Nach Abschluss des Upgrades werden die Ergebnisse angezeigt. Beachten Sie, wie das Windows Forms-Projekt ein Warnsymbol hat. Erweitern Sie dieses Element, und weitere Informationen werden zu diesem Schritt angezeigt:
Beachten Sie, dass die Projektupgradekomponente erwähnt, dass die Standardschriftart geändert wurde. Da sich die Schriftart auf das Steuerelementlayout auswirken kann, müssen Sie jedes Formular und jedes benutzerdefinierte Steuerelement in Ihrem Projekt überprüfen, um sicherzustellen, dass die Benutzeroberfläche korrekt angeordnet ist.
Generieren eines bereinigten Builds
Nachdem Das Hauptprojekt aktualisiert wurde, bereinigen Sie es, und kompilieren Sie es.
- Klicken Sie im Fenster Projektmappen-Explorer mit der rechten Maustaste auf das MatchingGame-Projekt, und wählen Sie Bereinigen aus:
- Klicken Sie im Fenster Projektmappen-Explorer mit der rechten Maustaste auf das MatchingGame-Projekt, und wählen Sie Erstellen aus:
Wenn bei Ihrer Anwendung Fehler aufgetreten sind, finden Sie sie im Fenster Fehlerliste mit einer Empfehlung zur Behebung.
Das Windows Forms Matching Game Sample-Projekt wird jetzt auf .NET 9 aktualisiert.
Erfahrung nach dem Upgrade
Wenn Sie eine App von .NET Framework zu .NET portieren, lesen Sie nach dem Upgrade auf .NET Framework den Modernize-Artikel.
Zugehöriger Inhalt
Portieren von .NET Framework zu .NET.
Das Portierungshandbuch bietet eine Übersicht darüber, was Sie beim Portieren ihres Codes von .NET Framework zu .NET berücksichtigen sollten. Der Aufwand, der nach der ersten Migration der Projektdateien anfällt, hängt von der Komplexität Ihrer Projekte ab.
Modernisieren Sie nach dem Upgrade auf .NET Framework.
Die Welt von .NET hat sich seit .NET Framework stark verändert. Dieser Link enthält einige Informationen zum Modernisieren Ihrer App nach dem Upgrade.
.NET Desktop feedback