是否可以使用进程内 aspnet core 3 进行实时重新加载?
Posted
技术标签:
【中文标题】是否可以使用进程内 aspnet core 3 进行实时重新加载?【英文标题】:Is live reload with in-process aspnet core 3 possible? 【发布时间】:2019-10-02 14:35:25 【问题描述】:我最近将 .Net Framwork AspNet MVC 应用程序升级为 AspNet Core 3 MVC 应用程序,我希望能够更改视图、保存和刷新我的浏览器窗口以查看更改。现在看来我必须每次都进行构建才能看到任何更改。有没有办法改变这种行为?
这是在 IIS 10 下托管的
【问题讨论】:
【参考方案1】:据我所知,运行时编译只能在开发环境中工作。这意味着您不能在生产环境(托管在 IIS 上)中使用它。
如果将 Visual Studio 的调试环境更改为 IIS,它仍然可以工作。
此外,RuntimeCompilation 不是 asp.net core 3.0 中的内置功能。
如果你想使用的话,我建议你可以尝试安装包Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
,然后在Startup.cs
中配置AddRazorRuntimeCompilation
就像
public void ConfigureServices(IServiceCollection services)
services.AddControllersWithViews().AddRazorRuntimeCompilation();
【讨论】:
就是这样!谢谢白兰度! 也适用于 MVC。 按预期工作。谢谢 就像一个魅力,谢谢! 重要注意事项...当我使用 IIS 热重载时,我必须在热重载后手动刷新浏览器,此时 IIS Express 会自动刷新。【参考方案2】:3.1 有一种新的方法,取自:https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.1
在 csproj 中添加包
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.3" />
然后在launch.json处,添加一个新的环境变量
"ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
【讨论】:
【参考方案3】:我很高兴按照this blog post. 实现Westwind.AspnetCore.LiveReload,它非常简单,而且比 BrowserSync 工作得更好。
【讨论】:
是的,终于有一个简单易用的东西了!您应该在答案中添加主要步骤,以防链接断开 我添加了一个指向实际包的链接。如果它下降了,那么我们可能无论如何都不应该使用它。以上是关于是否可以使用进程内 aspnet core 3 进行实时重新加载?的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core 3.1 - HTTP 错误 500.30 - ANCM 进程内启动失败
Aspnet Core 3.1 Identity ConfirmEmail 未按预期工作
来自 JQuery 和控制器的 ASPNET Core MVC 部分视图