According to the documentation, Razor views should, by default, recompile on change on local environments for ASP.NET Core 3.0.
However, my project doesn't do this locally. If I change a view and refresh when I'm debugging locally, the change is not reflected. I have to stop the solution, re-run, and then see the change.
I am doing this on a default ASP.NET Core Web Application template on Visual Studio 2019 with ASP.NET Core 3.0.0 Preview 2 using Razor pages. Any idea if I need to change settings to enable this feature?
This question still gets a lot of views. A few answers have cited to add
services.AddControllersWithViews().AddRazorRuntimeCompilation();
To your ConfigureServices()
function in Startup.cs
after adding the Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
NuGet package. In my case, I am only using Razor Pages, so I don't call AddControllersWithViews()
. Instead, this worked for me:
services.AddRazorPages().AddRazorRuntimeCompilation();
OK it looks like it's not supported yet :(
Runtime compilation removed As a consequence of cleaning up the ASP.NET Core shared framework to not depend on Roslyn, support for runtime compilation of pages and views has also been removed in this preview release. Instead compilation of pages and views is performed at build time. In a future preview update we will provide a NuGet packages for optionally enabling runtime compilation support in an app.
You can read more about the issue here https://github.com/aspnet/Announcements/issues/343
Applications that require runtime compilation or re-compilation of Razor files should:
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
package. It'll be available as part of the 3.0.0-preview3 release.ConfigureServices
to include a call to AddMvcRazorRuntimeCompilation
: