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 :
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.
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.
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é.