Przeładowywanie na gorąco XAML dla interfejsu MAUI platformy .NET
Wieloplatformowy interfejs użytkownika aplikacji platformy .NET (.NET MAUI) XAML Przeładowywanie na gorąco to funkcja programu Visual Studio, która umożliwia wyświetlanie wyników zmian XAML w uruchomionej aplikacji bez konieczności ponownego kompilowania projektu. Bez Przeładowywanie na gorąco XAML musisz kompilować i wdrażać aplikację za każdym razem, gdy chcesz wyświetlić wynik zmiany XAML.
Gdy aplikacja .NET MAUI jest uruchomiona w konfiguracji debugowania, z dołączonym debugerem kod XAML Przeładowywanie na gorąco analizuje edycje XAML i wysyła te zmiany do uruchomionej aplikacji. Zachowuje on stan interfejsu użytkownika, ponieważ nie tworzy ponownie interfejsu użytkownika dla pełnej strony, a aktualizacje zmienionych właściwości kontrolek, których dotyczą zmiany. Ponadto stan nawigacji i dane będą utrzymywane, co umożliwia szybkie iterowanie interfejsu użytkownika bez utraty lokalizacji w aplikacji. W związku z tym będziesz poświęcać mniej czasu na ponowne kompilowanie i wdrażanie aplikacji w celu zweryfikowania zmian interfejsu użytkownika.
Domyślnie nie musisz zapisywać pliku XAML, aby wyświetlić wyniki edycji. Zamiast tego aktualizacje są stosowane natychmiast podczas wpisywania. Jednak w systemie Windows można zmienić to zachowanie, aby zaktualizować tylko w przypadku zapisywania plików. Można to zrobić, zaznaczając pole wyboru Zastosuj Przeładowywanie na gorąco XAML w ustawieniach Przeładowywanie na gorąco IDE dostępnych w ustawieniach środowiska IDE Przeładowywanie na gorąco, wybierając pozycję Opcje> debugowania > Przeładowywanie na gorąco XAML na pasku menu programu Visual Studio. Aktualizowanie tylko podczas zapisywania plików może być czasami przydatne, jeśli wprowadzisz większe aktualizacje XAML i nie chcesz ich wyświetlać, dopóki nie zostaną one ukończone.
Uwaga
Jeśli piszesz natywną aplikację platformy UWP lub WPF bez używania interfejsu MAUI platformy .NET, zobacz Co to jest Przeładowywanie na gorąco XAML dla aplikacji WPF i UWP?.
Przeładowywanie na gorąco XAML są dostępne zarówno w programach Visual Studio 2022, jak i Visual Studio 2022 dla komputerów Mac. W systemie Windows usługa XAML Przeładowywanie na gorąco jest dostępna w systemach Android, iOS i WinUI na emulatorach, symulatorach i urządzeniach fizycznych. Na komputerach Mac Przeładowywanie na gorąco XAML są dostępne w systemach Android, iOS i Mac Catalyst na emulatorach, symulatorach i urządzeniach fizycznych. We wszystkich przypadkach Przeładowywanie na gorąco XAML wymaga, aby konfiguracja debugowania nosiła nazwę Debug
.
Ważne
Przeładowywanie na gorąco XAML nie ładuje ponownie kodu C#. Jeśli dodasz nową procedurę obsługi zdarzeń w kodzie, można jej używać tylko w języku XAML po ponownym załadowaniu kodu. Ponadto w przypadku dodania nowego elementu XAML z elementem x:Name
nie można użyć nazwy w kodzie, dopóki kod nie zostanie ponownie załadowany.
Ponowne ładowanie pełnej strony
Mogą wystąpić przypadki, w których Przeładowywanie na gorąco XAML nie aktualizuje uruchomionej aplikacji zgodnie z oczekiwaniami. Możesz na przykład zmienić właściwość koloru w kontrolce MAUI platformy .NET, ale nie zobaczyć zmiany koloru w uruchomionej aplikacji. Aby obejść takie problemy, możesz w pełni ponownie załadować plik XAML, klikając przycisk paska narzędzi Przeładowywanie na gorąco lub naciskając Alt+F10. Tylko pliki XAML, które zostały edytowane, zostaną ponownie załadowane. Wyjątkiem jest zmiana pliku słownika zasobów, w takim przypadku wszystkie pliki XAML zostaną ponownie załadowane w celu zastosowania nowych zasobów.
Ważne
Po ponownym załadowaniu kodu XAML niektóre stany interfejsu użytkownika mogą zostać utracone, takie jak bieżący fokus i zaznaczenie.
Włączanie Przeładowywanie na gorąco XAML
Przeładowywanie na gorąco XAML jest domyślnie włączona w programie Visual Studio 2022. Jeśli została ona wcześniej wyłączona, można ją włączyć, wybierając pozycję Opcje > debugowania > XAML Przeładowywanie na gorąco na pasku menu programu Visual Studio. Następnie w oknie dialogowym Opcje upewnij się, że opcje Włącz Przeładowywanie na gorąco XAML, WinUI (w tym .NET MAUI) i Android i iOS (.NET MAUI) są zaznaczone:
Następnie w systemie iOS w ustawieniach kompilacji sprawdź, czy konsolidator ma wartość "Nie łącz".
Ponowne ładowanie na wielu platformach
Język XAML Przeładowywanie na gorąco obsługuje jednoczesne debugowanie wielu platform w programie Visual Studio, pod warunkiem że masz oddzielne projekty head na platformę, a nie jedną aplikację projektu. Można na przykład wdrożyć system Android i element docelowy systemu iOS w tym samym czasie, aby zobaczyć zmiany odzwierciedlane na obu platformach jednocześnie. Aby debugować na wielu platformach w systemie Windows, zobacz Instrukcje: ustawianie wielu projektów startowych.
Rozwiązywanie problemów
Dane wyjściowe Przeładowywanie na gorąco XAML wyświetla komunikaty o stanie, które mogą pomóc w rozwiązywaniu problemów. W programie Visual Studio można je wyświetlić, wybierając pozycję Wyświetl > dane wyjściowe na pasku menu, a następnie wybierając pozycję Przeładowywanie na gorąco na liście rozwijanej Pokaż dane wyjściowe z: .
Jeśli nie można zainicjować Przeładowywanie na gorąco XAML, upewnij się, że używasz najnowszej wersji programu .NET MAUI, najnowszej wersji środowiska IDE i że ustawienia konsolidatora systemu iOS są ustawione na Nie łącz w ustawieniach kompilacji projektu.
Przeładowywanie na gorąco XAML wymaga, aby konfiguracja debugowania nosiła nazwę Debug
. Jeśli jest używana niestandardowa konfiguracja kompilacji, Przeładowywanie na gorąco XAML przestanie działać, jeśli konfiguracja kompilacji nie ma nazwy Debug
.
Jeśli nic się nie stanie podczas zapisywania pliku XAML, upewnij się, że Przeładowywanie na gorąco XAML jest włączona w środowisku IDE. Aby uzyskać więcej informacji, zobacz Włączanie Przeładowywanie na gorąco XAML.
Jeśli wprowadzisz zmianę, którą analizator XAML Przeładowywanie na gorąco zobaczy jako nieprawidłowy, zostanie wyświetlony błąd podkreślony w edytorze i uwzględni go w oknie Lista błędów. Przeładowywanie na gorąco błędy mają kod błędu rozpoczynający się od "XHR" (dla Przeładowywanie na gorąco XAML). Jeśli na stronie występują jakiekolwiek takie błędy, Przeładowywanie na gorąco XAML nie będą stosować zmian do uruchomionej aplikacji, dopóki błędy nie zostaną naprawione.
Nie można dodawać, usuwać ani zmieniać nazw plików ani pakietów NuGet podczas sesji Przeładowywanie na gorąco XAML. Jeśli dodasz lub usuniesz plik lub pakiet NuGet, skompiluj i ponownie wdrożysz aplikację, aby kontynuować korzystanie z Przeładowywanie na gorąco XAML.
Wyłączenie kompilacji [XamlCompilation(XamlCompilationOptions.Skip)]
XAML z programem nie jest obsługiwane i może powodować problemy z dynamicznym drzewem wizualnym. Aby uzyskać więcej informacji na temat dynamicznego drzewa wizualnego, zobacz Inspekcja drzewa wizualnego aplikacji .NET MAUI.