Freigeben über


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

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:

  1. Klicken Sie im Fenster Projektmappen-Explorer mit der rechten Maustaste auf das MatchingGame.Logic-Projekt, und wählen Sie Upgrade aus:

    Screenshot des Menüelements

    Es wird eine neue Registerkarte geöffnet, die Sie auffordert, auszuwählen, welches Upgrade Sie ausführen möchten.

  2. Wählen Sie Direktes Projektupgrade aus.

    Screenshot der Registerkarte .NET-Upgrade-Assistent. Die Option

  3. 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.

    Screenshot des .NET-Upgrade-Assistenten. Die Zielframework-Eingabeaufforderung ist geöffnet, und .NET 8 wird zusammen mit der Schaltfläche

  4. 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.

    Screenshot des .NET-Upgrade-Assistenten. Die Seite

  5. Nach Abschluss des Upgrades werden die Ergebnisse angezeigt:

    Screenshot der Upgradeergebnisse des .NET-Upgrade-Assistenten mit den migrierten Elementen aus dem Projekt.

    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.

  1. Doppelklicken Sie nach Abschluss der Migration im fenster Projektmappen-Explorer auf das MatchingGame.Logic-Projekt.
  2. Suchen Sie das <Project>/<PropertyGroup>-Element.
  3. Ändern Sie im XML-Editor den Wert von <TargetFramework> "von net9.0 " in net9.0-windows".
  4. 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.

  1. Klicken Sie im Fenster Projektmappen-Explorer mit der rechten Maustaste auf das MatchingGame-Projekt, und wählen Sie Upgrade aus:
  2. Wählen Sie Direktes Projektupgrade aus.
  3. Wählen Sie .NET 9.0 für das Zielframework und dann "Weiter" aus.
  4. 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:

Screenshot der Upgradeergebnisregisterkarte des .NET-Upgrade-Assistenten mit einigen Ergebniselementen mit Warnsymbolen.

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.

  1. Klicken Sie im Fenster Projektmappen-Explorer mit der rechten Maustaste auf das MatchingGame-Projekt, und wählen Sie Bereinigen aus:
  2. 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.

  • 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.