Rechargement à chaud XAML pour .NET MAUI
Le Rechargement à chaud XAML de .NET MAUI (.NET Multi-platform App UI) est une fonctionnalité Visual Studio qui vous permet d’afficher le résultat des modifications XAML dans votre application en cours d’exécution, sans avoir à regénérer votre projet. Sans le Rechargement à chaud XAML, vous devez générer et déployer votre application chaque fois que vous souhaitez afficher le résultat d’une modification XAML.
Lorsque votre application .NET MAUI s’exécute dans une configuration de débogage, avec le débogueur attaché, le Rechargement à chaud XAML analyse vos modifications XAML et les envoie à l’application en cours d’exécution. Il conserve l’état de votre interface utilisateur, puisqu’il ne recrée pas l’interface utilisateur de la page entière, et met à jour les propriétés modifiées sur les contrôles affectés par les modifications. De plus, votre état et vos données de navigation sont conservés, ce qui vous permet d’itérer rapidement sur votre interface utilisateur sans perdre votre place dans l’application. Par conséquent, vous passerez moins de temps à regénérer et à déployer vos applications pour valider les modifications de l’interface utilisateur.
Par défaut, vous n’avez pas besoin d’enregistrer votre fichier XAML pour voir les résultats de vos modifications. En effet, les mises à jour sont appliquées immédiatement à mesure que vous tapez. Toutefois, sur Windows, vous pouvez changer ce comportement pour effectuer une mise à jour uniquement lors de l’enregistrement du fichier. Pour ce faire, cochez la case Appliquer le Rechargement à chaud XAML lors de l’enregistrement du document dans les paramètres de l’IDE du rechargement à chaud qui sont disponibles en sélectionnant Déboguer > Options> Rechargement à chaud XAML dans la barre de menus de Visual Studio. La mise à jour seulement lors de l’enregistrement du fichier peut parfois être utile si vous effectuez des mises à jour XAML plus importantes et que vous ne souhaitez pas les afficher tant qu’elles ne sont pas terminées.
Remarque
Si vous écrivez une application UWP ou WPF native sans utiliser .NET MAUI, consultez Qu’est-ce que le Rechargement à chaud XAML pour les applications WPF et UWP ?.
Le Rechargement à chaud XAML est disponible dans Visual Studio 2022 et Visual Studio 2022 pour Mac. Sur Windows, le Rechargement à chaud XAML est disponible sur Android, iOS et WinUI sur des émulateurs, simulateurs et appareils physiques. Sur Mac, le Rechargement à chaud XAML est disponible sur Android, iOS et Mac Catalyst sur des émulateurs, simulateurs et appareils physiques. Dans tous les cas, le Rechargement à chaud XAML nécessite que votre configuration de débogage soit nommée Debug
.
Important
Le rechargement à chaud XAML ne recharge pas le code C#. Si vous ajoutez un nouveau gestionnaire d’événements dans le code, il peut uniquement être utilisé en XAML une fois le code rechargé. En outre, si vous ajoutez un nouvel élément XAML avec un x:Name
, le nom ne peut pas être utilisé dans le code tant que le code n’est pas rechargé.
Rechargement complet de la page
Il peut arriver que le rechargement à chaud XAML ne mette pas à jour l’application en cours d’exécution comme prévu. Par exemple, vous pouvez modifier une propriété de couleur sur un contrôle .NET MAUI et ne pas voir la modification de couleur dans l’application en cours d’exécution. Pour contourner ces problèmes, vous pouvez recharger complètement le fichier XAML en cliquant sur le bouton « Rechargement à chaud » de la barre d’outils ou en appuyant sur Alt+F10. Seuls les fichiers XAML qui ont été modifiés seront rechargés. Il existe une exception à cette règle : si vous modifiez un fichier de dictionnaire de ressources, tous les fichiers XAML seront rechargés afin d’appliquer les nouvelles ressources.
Important
Lorsqu’on recharge XAML, certains états de l’interface utilisateur peuvent être perdus, comme le focus et la sélection en cours.
Activer le Rechargement à chaud XAML
Le Rechargement à chaud XAML est activé par défaut dans Visual Studio 2022. S’il a été désactivé, il peut être activé en sélectionnant Déboguer > Options > Rechargement à chaud XAML dans la barre de menus de Visual Studio. Ensuite, dans la boîte de dialogue Options, vérifiez que les options Activer le Rechargement à chaud XAML , WinUI (y compris .NET MAUI) et Android et iOS (.NET MAUI) sont cochées :
Ensuite, sur iOS dans vos paramètres de build, vérifiez que l’éditeur de liens est défini sur « Ne pas lier ».
Rechargement sur plusieurs plateformes
Le rechargement à chaud XAML prend en charge le débogage simultané de plusieurs plateformes dans Visual Studio, à condition que vous ayez des projets principaux distincts par plateforme plutôt qu’une seule application de projet. Par exemple, vous pouvez déployer une cible Android et une cible iOS en même temps pour voir vos modifications reflétées sur les deux plateformes à la fois. Pour déboguer sur plusieurs plateformes sur Windows, consultez Guide pratique : Définir plusieurs projets de démarrage.
Dépannage
La sortie du Rechargement à chaud XAML affiche les messages d’état qui peuvent vous aider à résoudre les problèmes. Vous pouvez les afficher dans Visual Studio en sélectionnant Afficher la sortie du > dans la barre de menus, puis en sélectionnant Rechargement à chaud dans le menu déroulant Afficher la sortie à partir de :.
Si le Rechargement à chaud XAML ne parvient pas à s’initialiser, vérifiez que vous utilisez la dernière version de .NET MAUI et la dernière version de l’IDE, et que vos paramètres d’éditeur de liens iOS sont définis sur Ne pas lier dans les paramètres de build du projet.
Le Rechargement à chaud XAML nécessite que votre configuration de débogage soit nommée Debug
. Si une configuration de build personnalisée est utilisée, le Rechargement à chaud XAML cesse de fonctionner si la configuration de build n’est pas nommée Debug
.
Si rien ne se produit lors de l’enregistrement de votre fichier XAML, vérifiez que le Rechargement à chaud XAML est activé dans l’IDE. Pour plus d’informations, consultez Activer le Rechargement à chaud XAML.
Si vous apportez une modification que l’analyseur du Rechargement à chaud XAML voit comme non valide, l’erreur est soulignée dans l’éditeur et incluse dans la fenêtre Liste d’erreurs. Les erreurs du rechargement à chaud ont un code d’erreur commençant par « XHR » (pour XAML Hot Reload). S’il existe de telles erreurs dans la page, le Rechargement à chaud XAML n’applique pas les modifications à votre application en cours d’exécution tant que les erreurs n’ont pas été corrigées.
Vous ne pouvez pas ajouter, supprimer ou renommer les fichiers ou les packages NuGet pendant une session du Rechargement à chaud XAML. Si vous ajoutez ou supprimez un fichier ou un package NuGet, regénérez et redéployez votre application pour continuer à utiliser le Rechargement à chaud XAML.
La désactivation de la compilation XAML avec [XamlCompilation(XamlCompilationOptions.Skip)]
n’est pas prise en charge et peut entraîner des problèmes avec l’arborescence d’éléments visuels en temps réel. Pour plus d’informations sur l’arborescence d’éléments visuels en temps réel, consultez Inspecter l’arborescence d’éléments visuels d’une application .NET MAUI.