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 capturaban this 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:

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 capturaban this 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 clave yield.
  • 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 clave yield.
  • 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:

  • : 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: