【问题标题】:Is live reload with in-process aspnet core 3 possible?是否可以使用进程内 aspnet core 3 进行实时重新加载?
【发布时间】:2019-10-02 14:35:25
【问题描述】:

我最近将 .Net Framwork AspNet MVC 应用程序升级为 AspNet Core 3 MVC 应用程序,我希望能够更改视图、保存和刷新我的浏览器窗口以查看更改。现在看来我必须每次都进行构建才能看到任何更改。有没有办法改变这种行为?

这是在 IIS 10 下托管的

【问题讨论】:

    标签: asp.net-core iis


    【解决方案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 工作得更好。

      【讨论】:

      • 是的,终于有一个简单易用的东西了!您应该在答案中添加主要步骤,以防链接断开
      • 我添加了一个指向实际包的链接。如果它下降了,那么我们可能无论如何都不应该使用它。
      猜你喜欢
      • 2011-04-25
      • 2021-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-21
      • 1970-01-01
      • 2021-02-13
      • 1970-01-01
      相关资源
      最近更新 更多