Partager via


Résoudre les problèmes de Rechargement à chaud XAML

S’applique à : Visual Studio 2019 et versions ultérieures

Ce guide de résolution des problèmes comprend des instructions détaillées permettant de résoudre la plupart des problèmes qui empêchent le Rechargement à chaud XAML de fonctionner correctement.

Le Rechargement à chaud XAML est pris en charge avec les applications WPF et UWP. Pour plus d’informations sur la configuration requise concernant le système d’exploitation et les outils, consultez Écriture et débogage du code XAML en cours d’exécution avec le Rechargement à chaud XAML.

Si Rechargement à chaud n’est pas disponible

Si vous voyez le message Hot Reload is not available dans la barre d’outils dans l’application lors du débogage de votre application, suivez les instructions décrites dans cet article pour résoudre le problème.

Vérification de l’activation du Rechargement à chaud XAML

La fonctionnalité est activée par défaut dans Visual Studio 2019 et les versions ultérieures. Lorsque vous démarrez le débogage de votre application, vérifiez que la barre d’outils dans l’application confirme que le Rechargement à chaud XAML est disponible.

Visual Studio 2019 :

Capture d’écran de la barre d’outils « XAML Rechargement à chaud disponible » dans Visual Studio 2019.

Visual Studio 2022 :

Capture d’écran de la barre d’outils « XAML Rechargement à chaud disponible » dans Visual Studio 2022.

Si vous ne voyez pas la barre d’outils dans l’application, sélectionnez Options>de débogage>XAML Rechargement à chaud dans la barre de menus de Visual Studio. Ensuite, dans la boîte de dialogue Options, vérifiez que l’option Activer le Rechargement à chaud XAML est sélectionnée.

Capture d’écran de la fenêtre Options de débogage de Visual Studio, avec mise en évidence de l’option Activer le Rechargement à chaud XAML.

Vérification de l’utilisation de la commande Commencer le débogage plutôt que de la commande Attacher au processus

L’Rechargement à chaud XAML nécessite que la variable ENABLE_XAML_DIAGNOSTICS_SOURCE_INFO d’environnement soit définie 1 au démarrage de l’application. Visual Studio définit automatiquement la valeur dans le cadre de la commande Démarrer>le débogage (ou F5). Si vous préférez utiliser le Rechargement à chaud XAML avec la commande Déboguer>Attacher au processus, définissez la variable d’environnement vous-même.

Note

Pour définir une variable d’environnement, utilisez le bouton Démarrer pour rechercher la variable d’environnement et choisissez Modifier les variables d’environnement système. Dans la boîte de dialogue qui s’ouvre, choisissez Variables d’environnement, ajoutez-la comme variable utilisateur et définissez sa valeur sur 1. Pour nettoyer, supprimez la variable lorsque vous avez terminé le débogage.

Vérification des propriétés MSBuild

Par défaut, les informations sources sont incluses dans une configuration Debug. Il est contrôlé par les propriétés MSBuild dans vos fichiers projet (tels que *.csproj). La propriété est XamlDebuggingInformation, définie sur True, pour WPF, et DisableXbfLineInfo, définie sur False, pour une application UWP. Par exemple :

WPF :

<XamlDebuggingInformation>True</XamlDebuggingInformation>

UWP :

<DisableXbfLineInfo>False</DisableXbfLineInfo>

Vérifiez que vous utilisez le nom de configuration de build correct

Vous devez soit définir manuellement la propriété MSBuild appropriée pour prendre en charge le Rechargement à chaud XAML (cf. section précédente), soit utiliser le nom de configuration de build par défaut (Debug). Si vous ne définissez pas correctement la propriété MSBuild, un nom de configuration de build personnalisé ne fonctionnera pas, pas plus qu’une build Release.

Vérifiez que votre programme n’est pas en cours d’exécution avec élévation de privilèges

Le Rechargement à chaud XAML n’est pas pris en charge dans les applications qui exécutent des niveaux élevés/exécutés en tant qu’administrateur.

Vérification de l’absence d’erreurs dans le fichier XAML

Si votre fichier XAML affiche des erreurs dans la Liste d’erreurs, le Rechargement à chaud XAML peut ne pas fonctionner.

Activer une recherche plus approfondie pour mettre à jour les références et les styles de ressources dans Visual Studio 2022

Définition de la variable d’environnement XAML_HOT_RELOAD_ACCURACY_OVER_PERF pour 1 permettre une recherche plus complète pour mettre à jour les références et les styles de ressources dans les applications WPF. N’oubliez pas que certaines applications, notamment celles qui utilisent des boîtes à outils tierces, peuvent subir des retards importants avec le Rechargement à chaud XAML. En cas de retard, un minuteur de progression du Rechargement à chaud s’affiche dans la barre d’état de l’éditeur.

Capture d’écran du minuteur de progression « XAML Rechargement à chaud » dans Visual Studio 2022.

Limitations connues

Voici les limitations connues du Rechargement à chaud XAML. Pour contourner une limitation que vous rencontrez, arrêtez le débogueur, puis effectuez l’opération.

Limitation WPF UWP Notes
Liaison des événements aux contrôles pendant l’exécution de l’application Non pris en charge Non pris en charge Cf. l’erreur Échec de l’événement de vérification. Dans WPF, vous pouvez faire référence à un gestionnaire d’événements existant. Ce n’est pas pris en charge dans les applications UWP.
Création d’objets de ressources dans un dictionnaire de ressources, par exemple dans la page/la fenêtre de votre application ou App.xaml Prise en charge à compter de Visual Studio 2019 version 16.2 (et versions ultérieures) Prise en charge Exemples :
- Ajout d’un SolidColorBrush dictionnaire de ressources à utiliser en tant que StaticResource.
Remarque : Les ressources statiques, les convertisseurs de style et d’autres éléments écrits dans un dictionnaire de ressources peuvent être appliqués/utilisés lors de l’utilisation de Rechargement à chaud XAML. Seule la création de la ressource n’est pas prise en charge.
- Modification de la propriété Source du dictionnaire de ressources.
Ajout de nouveaux contrôles, classes, fenêtres ou autres fichiers au projet pendant l’exécution de l’application Non pris en charge Non pris en charge None
Gestion des packages NuGet (ajout, suppression et mise à jour de packages) Non pris en charge Non pris en charge None
Modification de la liaison de données qui utilise l’extension de balisage {x:Bind} N/A Prise en charge à compter de Visual Studio 2019 Windows 10 version 1809 (build 10.0.17763) ou une version ultérieure est requis. Cela n’est pas pris en charge dans Visual Studio 2017 ni les versions antérieures.
Modification des directives x :Uid N/A Non pris en charge None
Utilisation de plusieurs processus Prise en charge Prise en charge La prise en charge s’effectue à compter de Visual Studio 2019 version 16.6.
Modification de styles dans les thèmes\generic.xaml Non pris en charge Non pris en charge Le Rechargement à chaud XAML crée de nouveaux styles. Les styles d’origine sont scellés. Les styles de cache de plateformes à partir de generic.xaml après leur application aux contrôles, ce qui les rend inaccessibles pour le remplacement.

Messages d’erreur

Vous pouvez rencontrer les erreurs suivantes lorsque vous utilisez le Rechargement à chaud XAML.

Message d’erreur Description
Échec de l’événement de vérification L’erreur indique que vous tentez de relier un événement à l’un de vos contrôles, ce qui n’est pas pris en charge pendant l’exécution de votre application.
Ce changement n’est pas pris en charge par le Rechargement à chaud XAML. Il ne sera pas appliqué durant la session de débogage. L’erreur indique que la modification que vous tentez d’apporter n’est pas prise en charge par le Rechargement à chaud XAML. Arrêtez la session de débogage, effectuez la modification, puis redémarrez la session de débogage.

Si vous trouvez un scénario non pris en charge que vous souhaitez rendre possible, faites-le nous savoir à l’aide de notre option Suggérer une fonctionnalité.