Modernisieren oder Portieren einer Windows-App mit GitHub Copilot

Wenn Sie über eine Windows-App verfügen – ein UWP-Projekt, eine WPF- oder WinForms-Desktop-App oder eine plattformübergreifende Electron- oder Flutter-App – kann GitHub Copilot den Prozess der Aktualisierung für moderne Windows erheblich beschleunigen. In diesem Artikel werden die wichtigsten Szenarien und Tools aufgeführt, die sie praktisch machen.

Bevor du anfängst

Stellen Sie sicher, dass die wichtigsten Tools konfiguriert sind:

  • GitHub Copilot mit dem WinUI 3-Entwicklungs-Plug-In – behandelt API-Migrationsanleitungen und generiert korrekten modernen Code.
  • Microsoft Learn MCP Server – bietet Copilot Zugriff auf aktuelle Windows App SDK Dokumentation
  • winapp CLI – fügt Paketidentität und Windows Verpackungen zu jedem Framework hinzu.

Wenn Sie diese noch nicht eingerichtet haben, beginnen Sie mit Setup GitHub Copilot für Windows Entwicklung.


Migrieren einer UWP-App zu WinUI 3

WinUI 3 ist der moderne Nachfolger der UI-Ebene von UWP. Die APIs sind ähnlich, aber nicht identisch – Namespaces wurden verschoben, einige Steuerelemente wurden geändert, und das App-Modell unterscheidet sich. Der WinUI 3-Migrationsleitfaden macht dies handhabbar.

Führen Sie die Migrationsanleitung aus

Führen Sie in Copilot Chat die Migrationsleitfaden-Funktion aus:

/winui3-development:winui3-migration-guide

Dies erzeugt einen strukturierten Migrationsplan, der auf Ihr Projekt zugeschnitten ist, einschließlich:

  • Eine Checkliste von Projektdatei- und Manifeständerungen
  • Eine Tabelle mit API-Namespacezuordnungen (z. B. Windows.UI.XamlMicrosoft.UI.Xaml)
  • Allgemeine Ersetzungen von Steuerelementen und vorher/nachher-Codebeispiele
  • Verpackungs- und Bereitstellungsunterschiede

Migrieren einer Datei

Öffnen Sie eine UWP-Quelldatei, und bitten Sie Copilot, sie zu migrieren:

"Migrieren Sie diese Datei von UWP zu WinUI 3. Ersetzen Sie alle veralteten UWP-APIs durch ihre WinUI 3-Entsprechungen. Kennzeichnen Sie alles, was manuell überprüft werden muss."

** Die benutzerdefinierten Anweisungen des WinUI 3-Plugins leiten Copilot an, korrekte Ersetzungen vorzunehmen. Zu den gängigen gehören:

UWP (Universelle Windows-Plattform) WinUI 3
Windows.UI.Xaml.* Microsoft.UI.Xaml.*
CoreDispatcher / RunAsync DispatcherQueue / TryEnqueue
MessageDialog ContentDialog (mit XamlRoot)
Windows.UI.Popups Microsoft.UI.Xaml.Controls
BackgroundTaskBuilder Windows App SDK Hintergrundaufgaben-APIs

Was Copilot tun kann und was nicht automatisch möglich ist

Copilot behandelt die meisten Namespace-Neuzuordnungen und einfache API-Ersetzungen gut. Es gibt Bereiche, die menschliche Überprüfung erfordern:

  • App-Modelländerungen – UWP-Lebenszyklusereignisse (Suspending, Resuming) ordnen WinUI 3 nicht direkt zu; Copilot können Alternativen vorschlagen, aber Sie müssen das Verhalten überprüfen.
  • XAML-Ressourcenwörterbücher – Designressourcen und benutzerdefinierte Formatvorlagen benötigen möglicherweise manuelle Anpassungen
  • Hintergrundaufgaben – das Verpackungsmodell unterscheidet sich; Verwenden der winapp CLI zum Einrichten der neuen Manifesteinträge

Modernisieren einer WPF- oder WinForms-App

Sollte ich vor Ort ein Upgrade durchführen oder mit WinUI 3 neu aufbauen?

Bevor Sie beginnen, lohnt es sich, zu entscheiden, welche Richtung für Ihre App sinnvoll ist. Es gibt einige verschiedene Wege mit unterschiedlichen Werkzeugen und Reichweiten.

Ihre Situation Empfohlener Pfad
Behalten Sie WPF oder WinForms als Benutzeroberflächenframework bei, wechseln Sie zu .NET 9+ Upgrade vor Ort – Verwenden Sie den GitHub Copilot Modernisierung für .NET Agenten, um die Projektdatei und Codeänderungen zu automatisieren.
Hinzufügen moderner Windows Features (Benachrichtigungen, KI, Shell-Integration) zu Ihrer vorhandenen App, ohne das Benutzeroberflächenframework zu ändern Add Windows App SDK Features – siehe die folgenden Szenarien. Verwenden Sie winapp CLI, um bei Bedarf Paketidentität hinzuzufügen.
Benötigen Sie moderne Fluent UI, Touchunterstützung, WinRT-Tiefe oder eine neue Codebasis. Rebuild mit WinUI 3 – siehe WPF-Muster in WinUI 3 für die API-Zuordnung; einen Copilot-unterstützten Ansatz finden Sie unter Migrate a UWP app to WinUI 3 (spezifisch für UWP, aber der Copilot-Workflow ist ähnlich)
Branchen-App mit WCF-, COM- oder schweren UI-Steuerelementen von Drittanbietern Upgrade vor Ort zuerst, dann schrittweise modernisieren — der GitHub Copilot Modernisierungsagent für .NET kann bei Upgrades von WCF zu CoreWCF, EF und ASP.NET Core unterstützen.

Hinweis

"Upgrade" (Wechsel zu einer neueren .NET-Version im selben Benutzeroberflächenframework) und "Neuerstellen" (Umstieg auf WinUI 3) sind separate Entscheidungen. Sie können jetzt ein Upgrade durchführen und später neu aufbauen oder beides zusammen für einen Greenfield-Ersatz ausführen. Die GitHub Copilot Modernisierung für .NET deckt den Upgradepfad ab. In den folgenden Abschnitten werden Windows App SDK Features zu Ihrer vorhandenen App hinzugefügt.

WPF- und WinForms-Apps können Windows App SDK Features ohne vollständige Neuschreibung übernehmen. Copilot + der Learn MCP Server erleichtert das Auffinden und Integrieren bestimmter Features.

Hinzufügen von Pushbenachrichtigungen

"Ich habe eine WPF App für .NET 8. Hier erfahren Sie, wie Sie Windows Pushbenachrichtigungen mithilfe der Windows App SDK hinzufügen. Die App ist zurzeit nicht verpackt."

Mit dem Learn MCP-Server ruft Copilot die aktuelle Windows App SDK-Benachrichtigungsdokumentation ab und generiert Integrationscode. Die grundlegende Pushbenachrichtigungsunterstützung funktioniert für entpackte Apps. Wenn Ihre App jedoch Push-Benachrichtigungen empfangen muss, während sie nicht ausgeführt wird – das häufigste Szenario in der Produktion – erfordern die COM-Aktivierung und die Hintergrundübermittlung eine Paketidentität. Copilot kann Ihnen bei Bedarf beim Hinzufügen von Paketen mit dem winapp CLI weiterhelfen.

Modernisieren des Erscheinungsbilds der App

"Meine WPF-App sieht datiert aus. Sorgen Sie dafür, dass es modern aussieht, mit einer Option für den dunklen Modus und einer Navigations-Randleiste wie moderne Windows-Apps."

Hinzufügen eines Dateiauswahl-Dialogs mithilfe des Windows App SDK

"Ersetzen Sie meine WPF OpenFileDialog-Verwendung durch den Windows App SDK StorageFilePicker für eine bessere moderne Windows Erfahrung."

Hinzufügen von Windows Benachrichtigungen

"Fügen Sie eine Benachrichtigung hinzu, die den Benutzer informiert, wenn eine Hintergrundaufgabe abgeschlossen ist."

Copilot stellt den Windows App SDK Benachrichtigungscode bereit. App-Benachrichtigungen funktionieren sowohl in verpackten als auch in entpackten Apps – es ist keine Paketidentität erforderlich.

Bitten Sie Copilot, Sie durchzuführen.

Ich möchte, dass meine App eine Windows Toast-Benachrichtigung anzeigt. Erklären Sie, was ich zuerst einrichten muss."


Hinzufügen von Windows-Features in eine plattformübergreifende App

Electron-, Flutter-, React Native- und Rust-Apps können zu erstklassigen Windows-Anwendungen mit winapp CLI werden. Copilot hilft Ihnen, Ihren Code für Windows-APIs anzupassen, sobald Sie über die Paketidentität verfügen.

Elektron

npm install @microsoft/winappcli --save-dev
npx winapp init
npx winapp node create-addon --feature notifications

Nachdem das Addon bereitgestellt ist, fordern Sie Copilot auf, es zu integrieren.

"Ich habe ein Gerüst für ein Windows Benachrichtigungs-Addon für meine Electron-App mit winapp CLI erstellt. Zeigen Sie mir, wie eine Benachrichtigung aus dem Hauptprozess gesendet wird, wenn ein Download abgeschlossen ist."

Eine vollständige exemplarische Vorgehensweise finden Sie im Electron-Setuphandbuch.

Flutter

winapp init

"Ich habe eine Flutter-App für Windows. Zeigen Sie mir, wie Sie die Windows App SDK verwenden, um ein Taskleistensymbol mit einem Kontextmenü hinzuzufügen."

Informationen zum Windows-spezifischen Setup finden Sie im Handbuch <>Flutter.

WPF/.NET

"Ich habe eine WPF-App. Führen Sie mich durch die Verwendung der winapp CLI zum Hinzufügen von MSIX-Verpackungen und anschließendes Hinzufügen eines KI-Features auf dem Gerät mithilfe der Windows AI-APIs."

Weitere Informationen finden Sie im Leitfaden .NET.


Was durch die Paketidentität freigeschaltet wird

Viele leistungsstarke Windows Features erfordern Package Identity , die winapp CLI jedem Framework hinzufügen kann. Sobald Sie dies haben, kann Copilot Ihnen bei der Verwendung helfen:

Funktion Was Copilot fragen
App-Benachrichtigungen "Fügen Sie eine Windows-Benachrichtigung hinzu, wenn mein Hintergrundjob abgeschlossen ist"
On-Device AI (Phi Silica, Texterkennung) "Fügen Sie lokale KI-Textzusammenfassungen unter Verwendung der Windows AI-APIs hinzu"
Windows Shellintegration (Blatt freigeben, Taskleiste) "Hinzufügen eines Freigabeziels, damit Benutzer über Explorer für meine App freigeben können"
Hintergrundaufgaben "Führen Sie jede Stunde eine Hintergrundaufgabe aus, auch wenn meine App geschlossen wird"
Dateitypzuordnungen "Meine App zum Öffnen von NOTIZEN-Dateien registrieren"

Nächste Schritte