ГОРЯЧАЯ ПЕРЕЗАГРУЗКА XAML дляXamarin.Forms

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

Примечание.

Если вы пишете собственное приложение UWP или WPF, а не используетеXamarin.Forms, см. Горячая перезагрузка XAML для UWP и WPF.

Требования к системе

Интегрированная среда разработки и платформа Минимальная версия, требуемая
Visual Studio 2019 16.9 для режима только изменений, 16.4 для полного режима страницы
Visual Studio 2019 для Mac 8.9 для режима только изменений, 8.4 для полного режима страницы
Xamarin.Forms 5.0.0.2012 для режима только изменений; 4.1 для полного режима страницы

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

Если вы начинаете работу с шаблона, Горячая перезагрузка XAML по умолчанию включен, и проект настроен для работы без дополнительной настройки. Отладка приложения Android, iOS или UWP на эмуляторе или физическом устройстве и изменение XAML для активации Горячая перезагрузка XAML.

Если вы работаете с существующим Xamarin.Forms решением, дополнительная установка не требуется для использования xaml Горячая перезагрузка, но может потребоваться дважды проверка конфигурации, чтобы обеспечить оптимальный интерфейс. Сначала включите его в параметрах интегрированной среды разработки:

  • В Windows проверка поле "Включить Горячая перезагрузка XAML проверка" (и необходимые платформы) в разделе "Отладка>> параметров инструментов>Горячая перезагрузка.
    • В более ранних версиях Visual Studio 2019 проверка box находится в разделе "Параметры>инструментов>" Xamarin> Горячая перезагрузка.
  • На Компьютере Mac проверка поле "Включить Xamarin Горячая перезагрузка проверка проверка" в средстве настроек>Visual Studio>для Горячая перезагрузка Xamarin>XAML.
    • В более ранних версиях Visual Studio для Mac поле проверка box находится в Горячая перезагрузка проектов Xamarin Visual Studio.>>>

Затем в параметрах сборки Android и iOS проверка, что компоновщику присвоено значение "Не связать" или "Нет ссылки". Чтобы использовать XAML Горячая перезагрузка с физическим устройством iOS, необходимо также проверка включить интерпретатор Mono (Visual Studio 16.4 и более поздней версии) или добавить интерпретатор --интерпретатор в дополнительные mtouch args (Visual Studio 16.3 и ниже).

Для проверка настройки существующего проекта для использования с XAML Горячая перезагрузка можно использовать следующую блок-схему:

XAML Hot Reload Setup

режимы Горячая перезагрузка

XAML Горячая перезагрузка может работать в двух разных режимах— более новый режим изменения только и более старый полный режим страницы.

В Visual Studio 16.9 и Visual Studio для Mac 8.9 поведение по умолчанию предназначено для использования только для всех приложений, использующих Xamarin.Forms версию 5.0 или более поздней версии. Для более старых версий используется полный Xamarin.Formsрежим страницы. Однако вы можете принудительно использовать полный режим страницы для всех приложений в параметрах интегрированной среды разработки Горячая перезагрузка (отладка> параметров инструментов>>Горячая перезагрузка в Windows или Visual Studio>Setting>Tools for Xamarin XAML> Горячая перезагрузка на Mac).

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

По умолчанию при изменении только режима, который не требуется сохранять файл, чтобы увидеть изменения. Обновления применяются немедленно при вводе. Однако это поведение можно изменить, чтобы обновить только при сохранении файлов. Это можно сделать, проверка применить xaml Горячая перезагрузка в папке сохранения документов проверка box (в настоящее время доступно только в Windows) в параметрах интегрированной среды разработки Горячая перезагрузка. Только обновление при сохранении документов иногда может оказаться полезным, если вы делаете более крупные обновления XAML и не хотите, чтобы они отображались до тех пор, пока они не будут завершены.

Полный режим страницы отправляет полный XAML-файл в работающее приложение после внесения изменений и сохранения. После этого запущенное приложение перезагрузит страницу, воссоздав его элементы управления, вы увидите обновление пользовательского интерфейса.

Изменение только режима — это будущее Горячая перезагрузка, и мы рекомендуем использовать его по возможности. Это быстро, сохраняет состояние пользовательского интерфейса и поддерживает динамическое визуальное дерево. Полный режим страницы по-прежнему предоставляется для приложений, которые еще не обновлены до Xamarin.Forms версии 5.0.

Примечание.

При переключении режимов необходимо перезапустить сеанс отладки.

Ошибки XAML

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

Полный режим страницы: если изменить, что xaml Горячая перезагрузка не может перезагрузить, он отобразит ошибку, подчеркнутую в редакторе, и включит ее в окно ошибок. Эти изменения, известные как грубые изменения, включают несоответствие XAML или подключение элемента управления к обработчику событий, который не существует. Даже при грубом редактировании вы можете продолжать перезагрузить, не перезагрузив приложение. Внесите другое изменение в другое место в XAML-файле и нажмите кнопку сохранения. Грубое изменение не будет перезагружено, но другие изменения будут применяться.

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

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

Известные ограничения

  • Xamarin.Forms целевые объекты за пределами Android, iOS и UWP (например, macOS) в настоящее время не поддерживаются.
  • Использование [XamlCompilation(XamlCompilationOptions.Skip)], отключение компиляции XAML не поддерживается и может вызвать проблемы с динамическим визуальным деревом.
  • Вы не можете добавлять, удалять или переименовать файлы или пакеты NuGet во время сеанса XAML Горячая перезагрузка. При добавлении или удалении файла или пакета NuGet перестройте и повторно разверните приложение, чтобы продолжить использование XAML Горячая перезагрузка.
  • Задайте компоновщику значение "Не связать " или "Нет" для оптимального взаимодействия. Параметр пакета SDK для ссылок работает в большинстве случаев, но в некоторых случаях он может завершиться ошибкой. Параметры компоновщика можно найти в параметрах сборки Android и iOS.
  • Отладка на физическом устройстве i Телефон требует, чтобы интерпретатор использовал Горячая перезагрузка XAML. Для этого откройте параметры проекта, выберите вкладку сборки iOS и убедитесь, что включен параметр интерпретатора Mono. Возможно, вам потребуется изменить параметр Platform в верхней части страницы свойства на i Телефон.
  • ГОРЯЧАЯ ПЕРЕЗАГРУЗКА XAML не может перезагрузить код C#, включая обработчики событий, пользовательские элементы управления, код страницы и дополнительные классы.

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

  • Откройте выходные данные XAML Горячая перезагрузка для просмотра сообщений о состоянии, которые могут помочь в устранении неполадок:
    • Windows: откройте выходные данные с выходными данными представления> и выберите Xamarin Горячая перезагрузка в разделе "Показать выходные данные: в верхней части"
    • Mac: наведите указатель мыши на XAML Горячая перезагрузка в строке состояния, чтобы показать, что эта панель
  • Если Горячая перезагрузка XAML не удается инициализировать:
    • Обновите Xamarin.Forms версию.
    • Убедитесь, что вы находитесь в последней версии интегрированной среды разработки.
    • Задайте параметры компоновщика Android или iOS, чтобы не ссылаться на параметры сборки проекта.
  • Если при сохранении XAML-файла ничего не происходит, убедитесь, что в интегрированной среде разработки включена Горячая перезагрузка XAML.
  • Если вы отладите физический i Телефон и приложение не отвечает, проверка, что интерпретатор включен. Чтобы включить его, проверка включить интерпретатор Mono (Visual Studio 16.4/8.4 и вверх) или добавить интерпретатор в поле "Дополнительные аргументы mtouch" (Visual Studio 16.3/8.3 и более поздней версии) в параметрах сборки iOS.

Чтобы сообщить об ошибке, используйте >справку по отправке отзывов>о проблеме в Windows и сообщите>о проблеме на Mac.