在ASP.NET Core 3中,是否可以实现即时重新加载(live reload)和进程内(in-process)的结合?

23
我最近将一个.Net Framework AspNet MVC应用程序升级为AspNet Core 3 MVC应用程序,并希望能够更改视图、保存并刷新浏览器窗口以查看更改。现在似乎每次都需要构建才能看到任何更改。有没有办法改变这种行为?
这个应用程序是在IIS 10下托管的。
4个回答

62
据我所知,运行时编译只能在开发环境下使用,也就是说你不能在托管于IIS的生产环境中使用它。
如果你将Visual Studio的调试环境更改为IIS,它仍然可以工作。
除此之外,RuntimeCompilation不是AspNet Core 3.0的内置功能。
如果你想要使用它,建议你尝试安装包Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation,并在Startup.cs中配置AddRazorRuntimeCompilation。
public void ConfigureServices(IServiceCollection services)
{
    services.AddControllersWithViews().AddRazorRuntimeCompilation();
}

这就是了!谢谢 Brando! - user3953989
同样适用于MVC。 - Artur INTECH
工作正常,谢谢。 - Yawar Ali
像魔法一样,谢谢! - Brendan Sluke
一个重要的注意事项... 当我在IIS中使用热重载时,我必须手动刷新浏览器以完成热重载,而IIS Express会自动刷新。 - Cryptc
在使用dotnet 3.1时,您还需要将 <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.3" /> 添加到您的csproj文件中。 - SalkinD

9

8

1
是的,终于有东西可以工作并且容易了!如果链接失效,您应该在答案中添加主要步骤。 - Daniel
1
我添加了一个指向实际软件包的链接。如果该链接失效,那么我们也不应该使用它。 - Patrick Szalapski

0
经过一番搜索,我找到了一个非常简单的解决方案:
在csproj中添加以下引用:
<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.3" />

将AddRazorRuntimeCompilation()添加到您的服务配置中。
services.AddControllersWithViews().AddRazorRuntimeCompilation();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接