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, tienes que 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 recompilar 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 necesaria
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 estás empezando 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>de 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 Enable Xamarin Recarga activa (Habilitar Xamarin Recarga activa) enVisual Studio Preferences>Tools for XamarinXAML Recarga activa (Herramientas de preferencias de Visual Studio> para 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 "Don't Link" o "Link None". Para usar xaml Recarga activa 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 los 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 usarla con xaml Recarga activa:

de instalació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 las 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).

El modo de solo cambios 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 permite el uso del árbol visual activo.

De forma predeterminada, con los cambios solo en el modo que 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 Recarga activa XAML en el guardado de documentos (actualmente solo disponible en Windows) en la configuración del IDE de Recarga activa. Solo la actualización en el guardado de documentos a veces puede ser útil 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 guardar. A continuación, 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 árbol visual dinámico. 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 de 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 e 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 algún error de este tipo en la página, Recarga activa no aplicará cambios, aunque se realicen 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, mostrará el error subrayado en el editor e lo incluirá en la ventana de errores. Estos cambios, conocidos como ediciones groseras, incluyen la niebla del 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

El Recarga activa XAML 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 Actualmente no se admiten destinos más allá de Android, iOS y UWP (por ejemplo, macOS).
  • No se admite el uso de [XamlCompilation(XamlCompilationOptions.Skip)], deshabilitar la compilación XAML y puede causar problemas con el árbol visual activo.
  • 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 No vincular ni vincular ninguno para obtener la mejor experiencia. La configuración del SDK de vínculo solo funciona la mayoría de las veces, pero puede producirse 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.
  • Los Recarga activa XAML no pueden 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 output with View>Output (Salida de la vista) y seleccione Xamarin Recarga activa en Show output from (Mostrar salida de): en la parte superior
    • Mac: mantenga el puntero sobre xaml Recarga activa en la barra de estado para mostrar ese panel.
  • Si el Recarga activa XAML no se puede inicializar:
    • Actualice la Xamarin.Forms versión.
    • Asegúrese de que está en la versión más reciente del IDE.
    • Establezca la configuración del vinculador de Android o iOS 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 el Recarga activa XAML esté habilitado 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>notificar un problema en Windows y Ayudar a>notificar un problema en Mac.