Rechargement à chaud XAML pourXamarin.Forms

Le Rechargement à chaud XAML se connecte à votre flux de travail existant pour augmenter votre productivité et vous faire gagner du temps. Sans Rechargement à chaud XAML, vous devez créer et déployer votre application chaque fois que vous souhaitez voir une modification XAML. Avec Rechargement à chaud, lorsque vous enregistrez votre fichier XAML, les modifications sont reflétées en direct dans votre application en cours d’exécution. En outre, votre état de navigation et vos données seront conservés, ce qui vous permettra d’itérer rapidement sur votre interface utilisateur sans perdre votre place dans l’application. Par conséquent, avec xaml Rechargement à chaud, vous consacrerez moins de temps à la reconstruction et au déploiement de vos applications pour valider les modifications apportées à l’interface utilisateur.

Notes

Si vous écrivez une application UWP ou WPF native, sans utiliser Xamarin.Forms, consultez Rechargement à chaud XAML pour UWP et WPF.

Configuration système requise

IDE/Framework Version minimale requise
Visual Studio 2019 16.9 pour le mode de modification uniquement, 16.4 pour le mode pleine page
Visual Studio 2019 pour Mac 8.9 pour le mode de modification uniquement, 8.4 pour le mode pleine page
Xamarin.Forms 5.0.0.2012 pour le mode de modification uniquement ; 4.1 pour le mode pleine page

Activer la Rechargement à chaud XAML pourXamarin.Forms

Si vous commencez à partir d’un modèle, le Rechargement à chaud XAML est activé par défaut et le projet est configuré pour fonctionner sans configuration supplémentaire. Déboguez votre application Android, iOS ou UWP sur un émulateur ou un appareil physique et modifiez votre CODE XAML pour déclencher un Rechargement à chaud XAML.

Si vous travaillez à partir d’une solution existanteXamarin.Forms, aucune installation supplémentaire n’est requise pour utiliser Rechargement à chaud XAML, mais vous devrez peut-être doubler case activée votre configuration pour garantir une expérience optimale. Tout d’abord, activez-le dans vos paramètres IDE :

  • Sur Windows, case activée la case à cocher Activer le Rechargement à chaud XAML (etles plateformes requises) dansOptions de débogage>des outils>> Rechargement à chaud.
    • Dans les versions antérieures de Visual Studio 2019, la case à cocher se trouve dansOptions>d’outils>Xamarin>Rechargement à chaud.
  • Sur Mac, case activée la case à cocher Activer Xamarin Rechargement à chaud dans Outilsde préférences>Visual Studio> pourles Rechargement à chaud XAMLXamarin>.
    • Dans les versions antérieures de Visual Studio pour Mac, la case à cocher se trouve dansPréférences>visual Studio>Projets>Xamarin Rechargement à chaud.

Ensuite, dans vos paramètres de build Android et iOS, case activée que l’éditeur de liens est défini sur « Ne pas lier » ou « Aucun lien ». Pour utiliser les Rechargement à chaud XAML avec un appareil iOS physique, vous devez également case activée Activer l’interpréteur Mono (Visual Studio 16.4 et versions ultérieures) ou ajouter --interpréteur à vos args mtouch supplémentaires (Visual Studio 16.3 et versions ultérieures).

Vous pouvez utiliser l’organigramme suivant pour case activée la configuration de votre projet existant à utiliser avec Rechargement à chaud XAML :

Organigramme du programme d’installation xaml Rechargement à chaud

modes Rechargement à chaud

Les Rechargement à chaud XAML peuvent fonctionner dans deux modes différents : le mode plus récent change uniquement et l’ancien mode pleine page.

À partir de Visual Studio 16.9 et Visual Studio pour Mac 8.9, le comportement par défaut concerne le mode de modification uniquement à utiliser pour toutes les applications qui utilisent Xamarin.Forms la version 5.0 ou une version ultérieure. Pour les versions antérieures de Xamarin.Forms, le mode page complète est utilisé. Toutefois, vous pouvez forcer l’utilisation du mode page complète pour toutes les applications dans les paramètres DE l’IDE Rechargement à chaud (Débogage>des options>d’outils> Rechargement à chaud sur Windows ou Visual Studio>Préférences>Tools pour Xamarin>XAML Rechargement à chaud sur Mac).

Change uniquement le mode analyse le XAML pour voir exactement ce qui a changé lorsque vous apportez une modification, et envoie uniquement ces modifications à l’application en cours d’exécution. Il s’agit de la même technologie que celle utilisée pour les Rechargement à chaud WPF et UWP. Il conserve l’état de l’interface utilisateur, car il ne recrée pas l’interface utilisateur pour la page complète, mais met simplement à jour les propriétés modifiées sur les contrôles affectés par les modifications. Le mode change uniquement permet également d’utiliser l’arborescence visuelle dynamique.

Par défaut, avec le mode modifications uniquement, vous n’avez pas besoin d’enregistrer votre fichier pour voir les modifications . Les mises à jour sont appliquées immédiatement, au fur et à mesure que vous tapez. Toutefois, vous pouvez modifier ce comportement pour mettre à jour uniquement lors de l’enregistrement de fichier. Pour ce faire, cochez la case Appliquer le Rechargement à chaud XAML à l’enregistrement de document (actuellement disponible uniquement sur Windows) dans les paramètres de l’IDE Rechargement à chaud. Seule la mise à jour lors de l’enregistrement de document peut parfois être utile si vous effectuez des mises à jour XAML plus importantes et que vous ne souhaitez pas qu’elles soient affichées tant qu’elles ne sont pas terminées.

Le mode page complète envoie le fichier XAML complet à l’application en cours d’exécution après avoir modifié et enregistré. L’application en cours d’exécution recharge ensuite la page, recréant ses contrôles. Vous verrez l’actualisation de l’interface utilisateur.

Le mode change uniquement est l’avenir de Rechargement à chaud et nous vous recommandons de l’utiliser dans la mesure du possible. Il est rapide, conserve l’état de l’interface utilisateur et prend en charge l’arborescence visuelle dynamique. Le mode pleine page est toujours fourni pour les applications qui n’ont pas encore été mises à jour vers Xamarin.Forms la version 5.0.

Notes

Vous devez redémarrer la session de débogage lors du changement de mode.

Erreurs XAML

Change uniquement le mode : si vous apportez une modification que le Rechargement à chaud analyseur XAML considère comme non valide, il affiche l’erreur soulignée dans l’éditeur et l’inclut dans la fenêtre d’erreurs. Ces erreurs Rechargement à chaud ont un code d’erreur commençant par « XHR » (pour les Rechargement à chaud XAML). S’il existe de telles erreurs sur la page, Rechargement à chaud n’applique pas de modifications, même si elles sont effectuées sur d’autres parties de la page. Corrigez toutes les erreurs pour que Rechargement à chaud recommencez à travailler pour la page.

Mode pleine page : si vous apportez une modification que le Rechargement à chaud XAML ne peut pas recharger, il affiche l’erreur soulignée dans l’éditeur et l’inclut dans la fenêtre Erreurs. Ces modifications, appelées modifications grossières, incluent la saisie incorrecte de votre code XAML ou le câblage d’un contrôle vers un gestionnaire d’événements qui n’existe pas. Même avec une modification grossière, vous pouvez continuer à recharger sans redémarrer l’application . Apportez une autre modification ailleurs dans le fichier XAML et appuyez sur Enregistrer. La modification grossière ne sera pas rechargée, mais vos autres modifications continueront d’être appliquées.

Recharger sur plusieurs plateformes à la fois

Le Rechargement à chaud XAML prend en charge le débogage simultané dans Visual Studio et Visual Studio pour Mac. Vous pouvez déployer une cible Android et iOS en même temps pour voir vos modifications reflétées sur les deux plateformes à la fois. Pour déboguer sur plusieurs plateformes, consultez :

Limitations connues

  • Xamarin.Forms les cibles au-delà d’Android, iOS et UWP (par exemple, macOS) ne sont pas prises en charge actuellement.
  • L’utilisation de [XamlCompilation(XamlCompilationOptions.Skip)], la désactivation de la compilation XAML, n’est pas prise en charge et peut entraîner des problèmes avec l’arborescence visuelle dynamique.
  • Vous ne pouvez pas ajouter, supprimer ou renommer des fichiers ou des packages NuGet pendant une session XAML Rechargement à chaud. Si vous ajoutez ou supprimez un fichier ou un package NuGet, régénérez et redéployez votre application pour continuer à utiliser les Rechargement à chaud XAML.
  • Définissez votre éditeur de liens sur Ne pas lier ou Aucun lien pour une expérience optimale. Le paramètre Du kit de développement logiciel (SDK) Link uniquement fonctionne la plupart du temps, mais il peut échouer dans certains cas. Les paramètres de l’éditeur de liens se trouvent dans vos options de build Android et iOS.
  • Le débogage sur un iPhone physique nécessite que l’interpréteur utilise des Rechargement à chaud XAML. Pour ce faire, ouvrez les paramètres du projet, sélectionnez l’onglet Build iOS et vérifiez que l’option Activer le paramètre d’interpréteur mono est activée. Vous devrez peut-être remplacer l’option Plateforme en haut de la page de propriétés par iPhone.
  • Les Rechargement à chaud XAML ne peuvent pas recharger le code C#, y compris les gestionnaires d’événements, les contrôles personnalisés, le code de page-behind et les classes supplémentaires.

Dépannage

  • Affichez la sortie du Rechargement à chaud XAML pour afficher status messages, ce qui peut vous aider à résoudre les problèmes :
    • Windows : affichez Sortie avec Afficher>la sortie et sélectionnez Xamarin Rechargement à chaud sous Afficher la sortie de : en haut
    • Mac : pointez sur le Rechargement à chaud XAML dans la barre de status pour afficher ce pavé
  • Si le Rechargement à chaud XAML ne parvient pas à s’initialiser :
    • Mettez à jour votre Xamarin.Forms version.
    • Vérifiez que vous utilisez la dernière version de l’IDE.
    • Définissez vos paramètres Android ou iOS Linker sur Ne pas lier dans les paramètres de build du projet.
  • Si rien ne se passe lors de l’enregistrement de votre fichier XAML, vérifiez que le Rechargement à chaud XAML est activé dans l’IDE.
  • Si vous déboguez sur un iPhone physique et que votre application ne répond plus, case activée que l’interpréteur est activé. Pour l’activer, case activée Activer l’interpréteur Mono (Visual Studio 16.4/8.4 et versions ultérieures) ou ajouter --interpreter au champ Arguments mtouch supplémentaires (Visual Studio 16.3/8.3 et versions antérieures) dans vos paramètres de build iOS.

Pour signaler un bogue, utilisez Aide Envoyer>des commentaires>Signaler un problème sur Windows et Signaler>un problème sur Mac.