Recarga activa de XAML para Xamarin.Forms

XAML Recarga activa conecta al flujo de trabajo existente para aumentar la productividad y ahorrar tiempo. Sin XAML Recarga activa, debes compilar e implementar la aplicación cada vez que quieras ver un cambio xaml. Con Recarga activa, al guardar el archivo XAML, los cambios se reflejan en directo en la aplicación en ejecución. Además, el estado de navegación y los datos se mantendrán, lo que le permite iterar rápidamente en la interfaz de usuario sin perder su lugar en la aplicación. Por lo tanto, con el Recarga activa XAML, dedicarás menos tiempo a volver a generar e implementar las aplicaciones para validar los cambios de la interfaz de usuario.

Nota

Si estás escribiendo una aplicación nativa para UWP o WPF, no usando Xamarin.Forms, consulta XAML Recarga activa para UWP y WPF.

Requisitos del sistema

IDE/Framework Versión mínima requerida
Visual Studio 2019 16.9 para el modo de solo cambios, 16.4 para el modo de página completa
Visual Studio 2019 para Mac 8.9 para el modo de solo cambios, 8.4 para el modo de página completa
Xamarin.Forms 5.0.0.2012 para el modo de solo cambios; 4.1 para el modo de página completa

Habilitar Recarga activa XAML paraXamarin.Forms

Si empiezas desde una plantilla, el Recarga activa XAML está activado de forma predeterminada y el proyecto está configurado para que funcione sin ninguna configuración adicional. Depure la aplicación Android, iOS o UWP en un emulador o dispositivo físico y cambie el código XAML para desencadenar un Recarga activa XAML.

Si trabajas desde una solución existenteXamarin.Forms, no es necesario realizar ninguna instalación adicional para usar Recarga activa XAML, pero es posible que tengas que comprobar la configuración para garantizar la mejor experiencia. En primer lugar, habilite en la configuración del IDE:

  • En Windows, active la casilla Habilitar Recarga activa XAML (y las plataformas necesarias) en Herramientas>Opciones>depuración>Recarga activa.
    • En versiones anteriores de Visual Studio 2019, la casilla está en Herramientas>Opciones>de Xamarin>Recarga activa.
  • En Mac, active la casilla Habilitar Xamarin Recarga activa en Visual Studio>Preferences>Tools for Xamarin>XAML Recarga activa.
    • En versiones anteriores de Visual Studio para Mac, la casilla está en Visual Studio>Preferences>Projects>Xamarin Recarga activa.

A continuación, en la configuración de compilación de Android e iOS, compruebe que el enlazador está establecido en "No vincular" o "Vincular ninguno". Para usar el Recarga activa XAML con un dispositivo iOS físico, también tienes que comprobar Habilitar el intérprete mono (Visual Studio 16.4 y versiones posteriores) o agregar --interpreter a tus argumentos mtouch adicionales (Visual Studio 16.3 y versiones posteriores).

Puedes usar el siguiente diagrama de flujo para comprobar la configuración del proyecto existente para usarlo con Recarga activa XAML:

de configuración de XAML Recarga activa configuraciónDiagrama de flujo de

modos de Recarga activa

Los Recarga activa XAML pueden funcionar en dos modos diferentes: el modo de solo cambios más reciente y el modo de página completa anterior.

Desde Visual Studio 16.9 y Visual Studio para Mac 8.9, el comportamiento predeterminado es para que solo se use el modo de cambios para todas las aplicaciones que usan Xamarin.Forms la versión 5.0 o posterior. Para versiones anteriores de Xamarin.Forms, se usa el modo de página completa. Sin embargo, puedes forzar el uso del modo de página completa para todas las aplicaciones de la configuración del IDE de Recarga activa (Depuración>de opciones> de herramientas>Recarga activa en Windows o Visual Studio>Preferences>Tools para Xamarin>XAML Recarga activa en Mac).

Cambia solo el modo analiza el XAML para ver exactamente lo que ha cambiado al realizar una edición y envía solo esos cambios a la aplicación en ejecución. Esta es la misma tecnología que se usa para WPF y UWP Recarga activa. Conserva el estado de la interfaz de usuario, ya que no vuelve a crear la interfaz de usuario para la página completa, simplemente actualizando las propiedades modificadas en los controles afectados por las modificaciones. El modo de solo cambios también habilita el uso del árbol visual dinámico.

De forma predeterminada, con el modo de solo cambios, no es necesario guardar el archivo para ver los cambios: las actualizaciones se aplican inmediatamente, a medida que escribe. Sin embargo, puede cambiar este comportamiento para actualizar solo en el guardado de archivos. Esto se puede lograr activando la casilla Aplicar xaml Recarga activa en guardar documento (actualmente solo disponible en Windows) en la configuración del IDE de Recarga activa. Solo la actualización en el guardado de documentos puede ser útil a veces si haces actualizaciones XAML más grandes y no quieres que se muestren hasta que se completen.

El modo de página completa envía el archivo XAML completo a la aplicación en ejecución después de realizar modificaciones y guardarlas. Después, la aplicación en ejecución vuelve a cargar la página y vuelve a crear sus controles; verá la actualización de la interfaz de usuario.

El modo de solo cambios es el futuro de Recarga activa y se recomienda usarlo siempre que sea posible. Es rápido, conserva el estado de la interfaz de usuario y admite Live Visual Tree. Todavía se proporciona el modo de página completa para las aplicaciones que aún no se han actualizado a Xamarin.Forms la versión 5.0.

Nota

Tendrá que reiniciar la sesión de depuración al cambiar los modos.

Errores XAML

Modo de solo cambios: si realizas un cambio, el analizador XAML Recarga activa ve como no válido, mostrará el error subrayado en el editor y lo incluirá en la ventana de errores. Estos errores Recarga activa tienen un código de error que empieza por "XHR" (para Recarga activa XAML). Si hay errores de este tipo en la página, Recarga activa no aplicará cambios, incluso si se realizan en otras partes de la página. Corrija todos los errores de Recarga activa para empezar a trabajar de nuevo para la página.

Modo de página completa: si realizas un cambio que xaml Recarga activa no se puede volver a cargar, se mostrará el error subrayado en el editor e incluirlo en la ventana de errores. Estos cambios, conocidos como ediciones groseras, incluyen la niebla de xaml o el cableado de un control a un controlador de eventos que no existe. Incluso con una edición grosera, puedes seguir recargando sin reiniciar la aplicación: haz otro cambio en otro lugar del archivo XAML y pulsa guardar. La edición grosera no se volverá a cargar, pero se seguirán aplicando los demás cambios.

Recarga en varias plataformas a la vez

XAML Recarga activa admite la depuración simultánea en Visual Studio y Visual Studio para Mac. Puede implementar un destino de Android y iOS al mismo tiempo para ver los cambios reflejados en ambas plataformas a la vez. Para depurar en varias plataformas, consulte:

Restricciones conocidas

  • Xamarin.Forms Los destinos más allá de Android, iOS y UWP (por ejemplo, macOS) no se admiten actualmente.
  • El uso de [XamlCompilation(XamlCompilationOptions.Skip)], deshabilitar la compilación XAML, no se admite y puede causar problemas con el árbol visual dinámico.
  • No puedes agregar, quitar ni cambiar el nombre de archivos ni paquetes NuGet durante una sesión de Recarga activa XAML. Si agregas o quitas un archivo o un paquete NuGet, recompila y vuelve a implementar la aplicación para seguir usando xaml Recarga activa.
  • Establezca el enlazador en Don't Link o Link None para obtener la mejor experiencia. La configuración del SDK de vínculo solo funciona la mayoría de las veces, pero puede producir un error en determinados casos. La configuración del vinculador se puede encontrar en las opciones de compilación de Android e iOS.
  • La depuración en un iPhone físico requiere que el intérprete use Recarga activa XAML. Para ello, abra la configuración del proyecto, seleccione la pestaña Compilación de iOS y asegúrese de que la opción Habilitar el intérprete mono esté habilitada. Es posible que tenga que cambiar la opción Plataforma en la parte superior de la página de propiedades a iPhone.
  • Xaml Recarga activa no puede volver a cargar código de C#, incluidos controladores de eventos, controles personalizados, código subyacente de página y clases adicionales.

Solución de problemas

  • Abra la salida del Recarga activa XAML para ver los mensajes de estado, lo que puede ayudar a solucionar problemas:
    • Windows: abra la salida con ver>salida y seleccione Xamarin Recarga activa en Mostrar salida desde: en la parte superior.
    • Mac: mantenga el puntero sobre el Recarga activa XAML en la barra de estado para mostrar ese panel.
  • Si el Recarga activa XAML no se inicializa:
    • Actualice la Xamarin.Forms versión.
    • Asegúrese de que está en la versión más reciente del IDE.
    • Establezca la configuración de Android o iOS Linker en No vincular en la configuración de compilación del proyecto.
  • Si no ocurre nada al guardar el archivo XAML, asegúrese de que la Recarga activa XAML esté habilitada en el IDE.
  • Si está depurando en un iPhone físico y la aplicación deja de responder, compruebe que el intérprete está habilitado. Para activarlo, active Habilitar el intérprete mono (Visual Studio 16.4/8.4 y versiones posteriores) o agregue --interpreter al campo Argumentos mtouch adicionales (Visual Studio 16.3/8.3 y versiones anteriores) en la configuración de compilación de iOS.

Para notificar un error, use Ayuda para>enviar comentarios>informe de un problema en Windows y Ayudar a>notificar un problema en Mac.