Cod*_*ter 6 razor asp.net-core hot-reload visual-studio-2022
这个问题与三个相关主题有关,这些主题允许开发人员在正在运行的应用程序中引入代码更改,而无需重建和重新启动所述应用程序:
下面描述的问题也会发生在这些组件的早期版本的组合上。然后:
启动 Visual Studio 2022
创建在 .NET 6 或 7 上运行的 ASP.NET Core Web 应用程序
添加 NuGet 包 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
将生成的 Program.cs 代码更改为以下内容以添加 Razor 运行时编译:
// Add services to the container.
var mvcBuilder = builder.Services.AddRazorPages();
#if DEBUG
mvcBuilder.AddRazorRuntimeCompilation();
#endif
Run Code Online (Sandbox Code Playgroud)
现在在任何视图中设置一个断点Index.cshtml就可以了,然后运行应用程序。
一旦到达断点,就更改一些 Razor 代码。或者不这样做,这些问题也会因打开(多个?).cshtml 文件而触发。
然后点击Ctrl+S并F5应用您的更改并继续运行您的应用程序和 tada.wav:
热重载无法自动应用您的更改。该应用程序需要重新构建才能应用更新。
或者,更改后面代码 (.cshtml.cs) 中的一些代码。现在,继续时您将收到随机 NullReferenceExceptions 或 ExecutionEngineExceptions。
在开始调试会话之前关闭所有 .cshtml 文件。
是否有可能:
看来,在受影响的项目中未安装 Razor 运行时编译 (Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation) 可以在很大程度上缓解此错误(尽管在尝试重现问题时,运行时仍然会偶尔抛出 NullReferenceException/ExecutionEngineException ) 。
由于热重载还会重新编译您的 Razor 视图,因此只需卸载 RuntimeCompilation 包,您就会得到更少的错误。
编辑:这并不完全正确,错误弹出窗口仍然会显示,尽管频率较低。
| 归档时间: |
|
| 查看次数: |
1425 次 |
| 最近记录: |