Freigeben über


XAML Hot Reload für .NET MAUI

.NET Multi-platform App UI (.NET MAUI) XAML Hot Reload ist ein Visual Studio-Feature, mit dem Sie das Ergebnis von XAML-Änderungen in Ihrer ausgeführten App anzeigen können, ohne das Projekt neu erstellen zu müssen. Ohne erneutes Laden von XAML müssen Sie Ihre App jedes Mal erstellen und bereitstellen, wenn Sie das Ergebnis einer XAML-Änderung anzeigen möchten.

Wenn Ihre .NET MAUI-App in der Debugkonfiguration ausgeführt wird, analysiert XAML Hot Reload Ihre XAML-Bearbeitungen und sendet diese Änderungen an die ausgeführte App. Sie behält den Zustand der Benutzeroberfläche bei, da sie die Benutzeroberfläche für die gesamte Seite nicht neu erstellt und geänderte Eigenschaften für von Bearbeitungen betroffene Steuerelemente aktualisiert. Darüber hinaus werden der Navigationszustand und die Daten Standard beibehalten, sodass Sie schnell auf der Benutzeroberfläche iterieren können, ohne ihre Position in der App zu verlieren. Daher verbringen Sie weniger Zeit mit der Neuerstellung und Bereitstellung Ihrer Apps, um Änderungen der Benutzeroberfläche zu überprüfen.

Standardmäßig müssen Sie Ihre XAML-Datei nicht speichern, um die Ergebnisse Ihrer Bearbeitungen anzuzeigen. Stattdessen werden Updates während der Eingabe sofort angewendet. Unter Windows können Sie dieses Verhalten jedoch so ändern, dass es nur beim Speichern von Dateien aktualisiert wird. Dies kann erreicht werden, indem Sie das Kontrollkästchen XAML Hot Reload bei Dokumentspeicherung in den verfügbaren Hot Reload IDE-Einstellungen aktivieren, indem Sie in der Menüleiste von Visual Studio die Debug>-Optionen > XAML Hot Reload auswählen. Das Aktualisieren beim Speichern von Dateien kann manchmal hilfreich sein, wenn Sie größere XAML-Updates vornehmen und nicht möchten, dass sie erst angezeigt werden, wenn sie abgeschlossen sind.

Hinweis

Wenn Sie eine systemeigene UWP- oder WPF-App schreiben, ohne .NET MAUI zu verwenden, lesen Sie Was ist XAML Hot Reload für WPF- und UWP-Apps?

Xaml Hot Reload ist sowohl in Visual Studio 2022 als auch in Visual Studio 2022 für Mac verfügbar. Unter Windows ist XAML Hot Reload unter Android, iOS und WinUI auf Emulatoren, Simulatoren und physischen Geräten verfügbar. Auf dem Mac ist XAML Hot Reload unter Android, iOS und Mac Catalyst auf Emulatoren, Simulatoren und physischen Geräten verfügbar.

Wichtig

Xaml Hot Reload lädt C#-Code, einschließlich Ereignishandlern, nicht neu.

XAML Hot Reload aktivieren

XAML Hot Reload ist in Visual Studio 2022 standardmäßig aktiviert. Wenn es zuvor deaktiviert wurde, kann es aktiviert werden, indem Sie in der Visual Studio-Menüleiste Debug >-Optionen > XAML Hot Reload auswählen. Stellen Sie als Nächste im Dialogfeld Options sicher, dass die Optionen Enable XAML Hot Reload, WinUI (inkl. .NET MAUI) und Android and iOS (.NET MAUI) aktiviert sind.

XAML Hot Reload options for .NET MAUI in Visual Studio.

Überprüfen Sie dann unter iOS in Ihren Buildeinstellungen, ob der Linker auf „Nicht verknüpfen“ festgelegt ist.

Erneutes Laden auf mehreren Plattformen

XAML Hot Reload unterstützt das gleichzeitige Debuggen mehrerer Plattformen in Visual Studio und Visual Studio für Mac, vorausgesetzt, Sie verfügen über separate Head-Projekte pro Plattform und nicht über eine einzelne Projekt-App. Sie können beispielsweise ein Android- und ein iOS-Ziel gleichzeitig bereitstellen, um ihre Änderungen auf beiden Plattformen gleichzeitig anzuzeigen. Informationen zum Debuggen auf mehreren Plattformen unter Windows finden Sie unter Anleitung: Mehrere Startup-Projekte aufsetzen. Informationen zum Debuggen auf mehreren Plattformen auf einem Mac finden Sie unter Festlegen mehrerer Startprojekte.

Problembehandlung

Die XAML Hot Reload-Ausgabe zeigt Statusmeldungen an, die ihnen bei der Problembehandlung helfen können. In Visual Studio können diese angezeigt werden, indem Sie Ansicht > Ausgabe aus der Menüleiste wählen und dann Xamarin Hot Reload aus dem Dropdown in the Ausgabe zeigen aus: wählen. In Visual Studio für Mac können diese angezeigt werden, indem Sie mit dem Mauszeiger über XAML Hot Reload in der Statusleiste fahren.

Wenn XAML Hot Reload nicht initialisiert werden kann, sollten Sie sicherstellen, dass Sie die neueste Version von .NET MAUI, die neueste Version der IDE, verwenden und dass Ihre iOS-Linkereinstellungen auf Nicht verknüpfen in den Buildeinstellungen des Projekts festgelegt sind.

Wenn beim Speichern der XAML-Datei nichts passiert, stellen Sie sicher, dass das erneute Laden von XAML in der IDE aktiviert ist. Weitere Informationen finden Sie unter XAML Hot Reload aktivieren.

Wenn Sie eine Änderung vornehmen, die der XAML Hot Reload-Parser als ungültig sieht, wird der im Editor unterstrichene Fehler angezeigt und in das Fenster Fehlerliste aufgenommen. Hot Reload-Fehler weisen einen Fehlercode auf, der mit „XHR“ (für XAML Hot Reload) beginnt. Wenn solche Fehler auf der Seite auftreten, wendet XAML Hot Reload keine Änderungen auf Ihre ausgeführte App an, bis die Fehler behoben wurden.

Sie können Dateien oder NuGet-Pakete während einer XAML-Sitzung beim hot Reload nicht hinzufügen, entfernen oder umbenennen. Wenn Sie eine Datei oder ein NuGet-Paket hinzufügen oder entfernen, erstellen Sie ihre App neu, und stellen Sie sie erneut bereit, um weiterhin XAML Hot Reload zu verwenden.

Das Deaktivieren der XAML-Kompilierung mit [XamlCompilation(XamlCompilationOptions.Skip)] wird nicht unterstützt und kann Probleme mit der Visuellen Live-Struktur verursachen. Weitere Informationen zum Live Visual Tree finden Sie unter Untersuchen des visuellen Baums einer .NET MAUI-Anwendung.