Compatibilidad de la Recarga activa de .NET con ASP.NET Core
Recarga activa de .NET aplica cambios de código, incluidos los cambios en las hojas de estilos, a una aplicación en ejecución sin reiniciar la aplicación y sin perder el estado de la aplicación. La Recarga activa es compatible con todos los proyectos de ASP.NET Core 6.0 y posteriores.
Por lo general, el código actualizado se vuelve a ejecutar para que tenga efecto con las condiciones siguientes:
- Alguna lógica de inicio solo se ejecuta una vez:
- Middleware, a menos que la actualización del código sea para un delegado de middleware insertado.
- Servicios configurados.
- Creación y configuración de rutas, a menos que la actualización del código sea a un delegado de controlador de rutas (por ejemplo,
OnInitialized
).
- En las aplicaciones Blazor, el marco desencadena automáticamente una representación de componenteRazor.
- En las aplicaciones MVC y Razor Pages, la Recarga activa desencadena automáticamente una actualización del explorador.
- La eliminación de un atributo Razorparámetro de componente de Razor no provoca que el componente se vuelva a representar. La aplicación debe reiniciarse.
Para obtener más información sobre escenarios admitidos, consulte Cambios de código admitidos (C# y Visual Basic).
Blazor WebAssembly
Recarga activa de Blazor WebAssemblyadmite los siguientes cambios de código:
- Tipos nuevos.
- Clases anidadas.
- La mayoría de los cambios en los cuerpos de método, como agregar, quitar y editar variables, expresiones e instrucciones.
- Cambios en los cuerpos de las expresiones lambda y las funciones locales.
- Agregar métodos estáticos y de instancia a los tipos existentes.
- Agregar campos estáticos y de instancias, eventos y propiedades a tipos existentes.
- Agregar expresiones lambda estáticas a los métodos existentes.
- Agregar expresiones lambda que capturan
this
a los métodos existentes que ya capturabanthis
anteriormente.
Tenga en cuenta que, cuando se quita un atributo que previamente establece el valor de un parámetro de componente, el componente se elimina y se vuelve a inicializar para volver a establecer el valor predeterminado del parámetro quitado.
No se admiten los siguientes cambios de código para las aplicaciones de Blazor WebAssembly:
- Agregar una nueva expresión de operador
await
o palabra claveyield
. - Cambiar los nombres de los parámetros de método.
Recarga activa de Blazor WebAssemblyadmite los siguientes cambios de código:
- Tipos nuevos.
- Clases anidadas.
- La mayoría de los cambios en los cuerpos de método, como agregar, quitar y editar variables, expresiones e instrucciones.
- Cambios en los cuerpos de las expresiones lambda y las funciones locales.
- Agregar métodos estáticos y de instancia a los tipos existentes.
- Agregar campos estáticos a los tipos existentes.
- Agregar expresiones lambda estáticas a los métodos existentes.
- Agregar expresiones lambda que capturan
this
a los métodos existentes que ya capturabanthis
anteriormente.
Tenga en cuenta que, cuando se quita un atributo que previamente establece el valor de un parámetro de componente, el componente se elimina y se vuelve a inicializar para volver a establecer el valor predeterminado del parámetro quitado.
No se admiten los siguientes cambios de código para las aplicaciones de Blazor WebAssembly:
- Agregar una nueva expresión de operador
await
o palabra claveyield
. - Cambiar los nombres de los parámetros de método.
- Agregar campos eventos o propiedades de instancia (que no son
static
).
Recarga activa de Blazor WebAssemblyadmite los siguientes cambios de código:
- La mayoría de los cambios en los cuerpos de método, como agregar, quitar y editar variables, expresiones e instrucciones.
- Cambios en los cuerpos de las expresiones lambda y las funciones locales.
No se admiten los siguientes cambios de código para las aplicaciones de Blazor WebAssembly:
- Agregar nuevas expresiones lambda o funciones locales.
- Agregar una nueva expresión de operador
await
o palabra claveyield
. - Cambiar los nombres de los parámetros de método.
- Cambios fuera de los cuerpos de método.
- Agregar campos eventos o propiedades de instancia (que no son
static
).
CLI de .NET
Recarga activa se activa mediante el comando dotnet watch
:
dotnet watch
Para forzar la recompilación y el reinicio de la aplicación, use la combinación de teclado Ctrl+R en el shell de comandos.
Cuando se realiza una modificación de código no compatible, denominada edición superficial, dotnet watch
le preguntará si quiere reiniciar la aplicación:
- Sí: reinicia la aplicación.
- No: no reinicia la aplicación y deja la aplicación en ejecución sin aplicar los cambios.
- Siempre: reinicia la aplicación según sea necesario cuando se producen ediciones superficiales.
- Nunca: no reinicia la aplicación y evita mensajes futuros.
Para deshabilitar la compatibilidad con Recarga activa, pase la opción --no-hot-reload
al comando dotnet watch
:
dotnet watch --no-hot-reload
Deshabilitar Recarga activa
La siguiente configuración de Properties/launchSettings.json
deshabilita Recarga activa:
"hotReloadEnabled" : false
Recursos adicionales
Para más información, consulte los recursos siguientes en la documentación de Visual Studio:
- Vídeo de YouTube Recarga activa de .NET 6 en Visual Studio 2022, VS Code y Bloc de notas
- Introducción a la experiencia de Recarga activa de .NET para editar código en el entorno de ejecución
- Escritura y depuración de código en ejecución con Recarga activa en Visual Studio
- Actualizaciones de Blazor y editores de Razor + Recarga activa para ASP.NET
- Ejecución de pruebas con Recarga activa