Saltar al contenido

.NET Core 3.0: las vistas de Razor no se vuelven a compilar automáticamente al cambiar

Sé libre de divulgar nuestros tutoriales y códigos con otro, danos de tu ayuda para aumentar esta comunidad.

Solución:

OK, parece que aún no es compatible 🙁

Se eliminó la compilación en tiempo de ejecución Como consecuencia de la limpieza del marco compartido de ASP.NET Core para que no dependa de Roslyn, también se eliminó la compatibilidad con la compilación de páginas y vistas en tiempo de ejecución en esta versión preliminar. En su lugar, la compilación de páginas y vistas se realiza en el momento de la compilación. En una futura actualización de vista previa, proporcionaremos paquetes NuGet para habilitar opcionalmente la compatibilidad con la compilación en tiempo de ejecución en una aplicación.

Puede leer más sobre el problema aquí https://github.com/aspnet/Announcements/issues/343

Las aplicaciones que requieren compilación en tiempo de ejecución o recompilación de archivos Razor deben:

  • Agregar una referencia a la Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation paquete. Estará disponible como parte del 3.0.0-vista previa3 liberar.
  • Actualizar la aplicación ConfigureServices incluir una llamada a AddMvcRazorRuntimeCompilation:

Para la versión de lanzamiento de ASP.NET Core 3:

   services.AddControllersWithViews().AddRazorRuntimeCompilation();

https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.0

También se puede habilitar condicionalmente solo para el desarrollo local, citado en el enlace:

La compilación en tiempo de ejecución se puede habilitar de modo que solo esté disponible para el desarrollo local. Habilitar condicionalmente de esta manera asegura que la salida publicada:

Utiliza vistas compiladas.
Es de menor tamaño.
No habilita los observadores de archivos en producción.

   public Startup(IConfiguration configuration, IWebHostEnvironment env)
    
        Configuration = configuration;
        Env = env;
    

    public IWebHostEnvironment Env  get; set; 
    public IConfiguration Configuration  get; 

    public void ConfigureServices(IServiceCollection services)
    
        IMvcBuilder builder = services.AddRazorPages();

#if DEBUG
            if (Env.IsDevelopment())
            
                builder.AddRazorRuntimeCompilation();
            
#endif
    

Para recuperar la compilación de la vista en tiempo de ejecución ASP.NET Core 3

  1. Referencia Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
  2. Llamar services.AddMvc().AddRazorRuntimeCompilation()
  3. Eliminar Microsoft.VisualStudio.Web.CodeGeneration.Design si hay una discrepancia de versión en el Microsoft.CodeAnalysis.Common paquete

Valoraciones y comentarios

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *