XAML Горячая перезагрузка для .NET MAUI

Пользовательский интерфейс приложений .NET (.NET MAUI) XAML Горячая перезагрузка — это функция Visual Studio, которая позволяет просматривать результат изменений XAML в работающем приложении без необходимости перестроить проект. Без Горячая перезагрузка XAML необходимо создавать и развертывать приложение каждый раз, когда вы хотите просмотреть результат изменения XAML.

При запуске приложения .NET MAUI в конфигурации отладки с присоединенным отладчиком XAML Горячая перезагрузка анализирует изменения XAML и отправляет эти изменения в работающее приложение. Он сохраняет состояние пользовательского интерфейса, так как он не создает пользовательский интерфейс для полной страницы и обновляет измененные свойства для элементов управления, затронутых изменениями. Кроме того, состояние навигации и данные будут поддерживаться, что позволяет быстро выполнять итерацию в пользовательском интерфейсе без потери расположения в приложении. Таким образом, вы будете тратить меньше времени на перестроение и развертывание приложений для проверки изменений пользовательского интерфейса.

По умолчанию вам не нужно сохранять XAML-файл, чтобы просмотреть результаты изменений. Вместо этого обновления применяются немедленно при вводе. Однако в Windows это поведение можно изменить, чтобы обновить только при сохранении файлов. Это можно сделать, проверка применив Горячая перезагрузка XAML к папке сохранения документов проверка в параметрах интегрированной среды разработки Горячая перезагрузка, выбрав пункт "Параметры> отладки > XAML" Горячая перезагрузка в строке меню Visual Studio. Только обновление при сохранении файлов иногда может оказаться полезным, если вы делаете более крупные обновления XAML и не хотите, чтобы они отображались до тех пор, пока они не будут завершены.

Примечание.

Если вы пишете собственное приложение UWP или WPF без использования .NET MAUI, см. статью "Что такое XAML Горячая перезагрузка для приложений WPF и UWP?".

XAML Горячая перезагрузка доступен как в Visual Studio 2022, так и в Visual Studio 2022 для Mac. В Windows Горячая перезагрузка XAML доступен на устройствах с Android, iOS и WinUI на эмуляторах, симуляторах и физических устройствах. В Mac xaml Горячая перезагрузка доступны в Android, iOS и Mac Catalyst на эмуляторах, симуляторах и физических устройствах.

Важно!

XAML Горячая перезагрузка не перезагрузит код C#, включая обработчики событий.

Включение Горячая перезагрузка XAML

XAML Горячая перезагрузка включен по умолчанию в Visual Studio 2022. Если он был отключен ранее, его можно включить, выбрав параметры отладки >> XAML Горячая перезагрузка в строке меню Visual Studio. Затем в диалоговом окне "Параметры" убедитесь, что параметры Enable XAML Горячая перезагрузка, WinUI (включая .NET MAUI) и Android и iOS (.NET MAUI) проверка:

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

Затем в iOS в параметрах сборки проверка, что компоновщик имеет значение "Не связывать".

Перезагрузить на нескольких платформах

XAML Горячая перезагрузка поддерживает одновременную отладку нескольких платформ в Visual Studio и Visual Studio для Mac, если у вас есть отдельные головные проекты на платформу, а не одно приложение проекта. Например, вы можете развернуть android и целевой объект iOS одновременно, чтобы просмотреть изменения, отраженные на обеих платформах одновременно. Сведения об отладке на нескольких платформах в Windows см. в статье "Практическое руководство. Настройка нескольких запускаемых проектов". Сведения об отладке на нескольких платформах в Mac см. в разделе "Настройка нескольких проектов запуска".

Устранение неполадок

Выходные данные XAML Горячая перезагрузка отображают сообщения о состоянии, которые могут помочь в устранении неполадок. В Visual Studio их можно отобразить, выбрав "Вид > выходных данных" в строке меню, а затем выбрав Xamarin Горячая перезагрузка в раскрывающемся списке "Показать выходные данные" в раскрывающемся списке. В Visual Studio для Mac их можно отобразить, наведите указатель мыши на XAML Горячая перезагрузка в строке состояния.

Если Горячая перезагрузка XAML не удается инициализировать, убедитесь, что вы используете последнюю версию .NET MAUI, последнюю версию интегрированной среды разработки и что для параметров компоновщика iOS задано значение "Не связываться" в параметрах сборки проекта.

Если при сохранении XAML-файла ничего не происходит, убедитесь, что в интегрированной среде разработки включена Горячая перезагрузка XAML. Дополнительные сведения см. в разделе "Включение Горячая перезагрузка XAML".

Если вы вносите изменения, которые средство синтаксического анализа XAML Горячая перезагрузка отображается как недопустимое, оно отобразит ошибку, подчеркнутую в редакторе, и включит ее в окно списка ошибок. Горячая перезагрузка ошибки имеют код ошибки, начиная с XHR (для XAML Горячая перезагрузка). Если на странице есть такие ошибки, XAML Горячая перезагрузка не будет применять изменения к работающему приложению до тех пор, пока ошибки не будут исправлены.

Вы не можете добавлять, удалять или переименовать файлы или пакеты NuGet во время сеанса XAML Горячая перезагрузка. При добавлении или удалении файла или пакета NuGet перестройте и повторно разверните приложение, чтобы продолжить использование XAML Горячая перезагрузка.

Отключение компиляции [XamlCompilation(XamlCompilationOptions.Skip)] XAML с помощью не поддерживается и может вызвать проблемы с динамическим визуальным деревом. Дополнительные сведения о динамическом визуальном дереве см. в разделе "Проверка визуального дерева" приложения .NET MAUI.