Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Le rechargement à chaud .NET applique des modifications de code, notamment les modifications apportées aux feuilles de style, à une application en cours d’exécution sans redémarrer l’application et sans perdre l’état de l’application. Le rechargement à chaud est pris en charge pour tout ASP.NET Core dans les projets .NET 6 ou version ultérieure.
En règle générale, le code mis à jour est réexécuté pour prendre effet avec les conditions suivantes :
- Une seule fois, une logique de démarrage est exécutée :
- Middleware, sauf si la mise à jour du code est vers un délégué intergiciel en ligne.
- Services configurés.
- Création et configuration d’itinéraires, sauf si la mise à jour du code concerne un délégué de gestionnaire de routage (par exemple).
OnInitialized
- Dans Blazor les applications, le framework déclenche automatiquement le rendu d’un Razor composant.
- Dans les applications MVC et Razor Pages, le rechargement à chaud déclenche automatiquement une actualisation du navigateur.
- La suppression de l'attribut Razorparamètre de composant n’entraîne pas le rerendu du composant. L’application doit être redémarrée.
Pour plus d’informations sur les scénarios pris en charge, consultez Modifications de code prises en charge (C# et Visual Basic).
Blazor WebAssembly
Blazor WebAssembly Le rechargement dynamique prend en charge les modifications de code suivantes :
- Nouveaux types.
- Classes imbriquées.
- La plupart des modifications apportées aux corps de méthode, tels que l’ajout, la suppression et la modification de variables, d’expressions et d’instructions.
- Modifications apportées aux corps des expressions lambda et des fonctions locales.
- Ajout de méthodes statiques et d’instance aux types existants.
- Ajout de champs statiques et d’instance, d’événements et de propriétés à des types existants.
- Ajout d’lambdas statiques à des méthodes existantes.
- Ajout de lambdas qui capturent
this
à des méthodes existantes qui capturaient déjàthis
précédemment.
Notez que lorsqu’un attribut est supprimé qui définit précédemment la valeur d’un paramètre de composant, le composant est supprimé et réinitialisé pour définir le paramètre supprimé sur sa valeur par défaut.
Les modifications de code suivantes ne sont pas prises en charge pour les Blazor WebAssembly applications :
- Ajout d’un nouvel
await
opérateur ou d’une expressionyield
mot clé. - Modification des noms des paramètres de méthode.
Blazor WebAssembly Le rechargement à chaud prend en charge les modifications de code suivantes :
- Nouveaux types.
- Classes imbriquées.
- La plupart des modifications apportées aux corps de méthode, tels que l’ajout, la suppression et la modification de variables, d’expressions et d’instructions.
- Modifications apportées aux corps des expressions lambda et des fonctions locales.
- Ajout de méthodes statiques et d’instance aux types existants.
- Ajout de champs statiques à des types existants.
- Ajout d’lambdas statiques à des méthodes existantes.
- Ajout de lambdas qui capturent
this
à des méthodes existantes qui capturent déjàthis
précédemment.
Notez que lorsqu’un attribut est supprimé qui définit précédemment la valeur d’un paramètre de composant, le composant est supprimé et réinitialisé pour définir le paramètre supprimé sur sa valeur par défaut.
Les modifications de code suivantes ne sont pas prises en charge pour les Blazor WebAssembly applications :
- Ajout d’un nouvel
await
opérateur ou d'une expressionyield
avec mot-clé. - Modification des noms des paramètres de méthode.
- Ajout de champs d’instance (non-
static
), d’événements ou de propriétés.
Blazor WebAssembly Hot Reload prend en charge les modifications de code suivantes :
- La plupart des modifications apportées aux corps de méthode, tels que l’ajout, la suppression et la modification de variables, d’expressions et d’instructions.
- Modifications apportées aux corps des expressions lambda et des fonctions locales.
Les modifications de code suivantes ne sont pas prises en charge pour les Blazor WebAssembly applications :
- Ajout de nouvelles fonctions lambda ou locales.
- Ajout d’un nouvel
await
opérateur ou d’une expression deyield
mot-clé. - Modification des noms des paramètres de méthode.
- Modifications en dehors des corps de méthode.
- Ajout de champs d’instance (non-
static
), d’événements ou de propriétés.
CLI .NET
Le rechargement à chaud est activé à l’aide de la dotnet watch
commande :
dotnet watch
Pour forcer l’application à reconstruire et redémarrer, utilisez la combinaison de touches Ctrl+R dans l’interpréteur de commandes.
Lorsqu’une modification de code non prise en charge est effectuée, appelée modification grossière, dotnet watch
vous demande si vous souhaitez redémarrer l’application :
- Oui : redémarre l’application.
- Non : ne redémarre pas l’application et laisse l’application en cours d’exécution sans les modifications appliquées.
- Toujours : redémarre l’application si nécessaire lorsque des modifications grossières se produisent.
- Jamais : ne redémarre pas l’application et évite les invites futures.
Pour désactiver la prise en charge du rechargement à chaud, passez l’option --no-hot-reload
à la dotnet watch
commande :
dotnet watch --no-hot-reload
Désactiver le rechargement à chaud
Le paramètre suivant dans Properties/launchSettings.json
désactive le rechargement à chaud :
"hotReloadEnabled" : false
Ressources supplémentaires
Pour plus d’informations, consultez les ressources suivantes dans la documentation de Visual Studio :
- Vidéo YouTube Rechargement à chaud .NET 6 dans Visual Studio 2022, VS Code et Notepad ?!?
- Présentation de l’expérience de rechargement à chaud .NET pour la modification du code au moment de l’exécution
- Écrire et déboguer du code en cours d’exécution avec rechargement à chaud dans Visual Studio
- Mises à jour pour Blazor les Razor éditeurs + actualisation instantanée pour ASP.NET
- Exécution de test avec le rechargement à chaud