ASP.NET Core项目部署:如何单独发布.cshtml文件?
ASP.NET Core 支持单独发布.cshtml文件吗?
可以,ASP.NET Core提供了灵活的Razor视图编译配置,完全能实现像.NET Framework中.aspx页面那样单独更新视图文件的需求,具体分两种场景处理:
开发环境
默认启用运行时编译,修改.cshtml文件后无需重新编译或发布,直接刷新页面就能看到最新效果,和开发.aspx页面的体验一致。生产环境
需要手动开启运行时编译功能,步骤如下:- 安装对应的NuGet包:
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation - 在项目的
Program.cs中配置服务:// 针对MVC项目 builder.Services.AddControllersWithViews().AddRazorRuntimeCompilation(); // 针对Razor Pages项目 // builder.Services.AddRazorPages().AddRazorRuntimeCompilation();
配置完成后发布项目,.cshtml文件会被复制到发布目录中,后续只需将修改后的.cshtml文件直接替换服务器上对应路径的文件,无需重新发布整个项目,替换后刷新页面即可生效。
- 安装对应的NuGet包:
额外注意事项
- 运行时编译会带来轻微的性能损耗,不过对于绝大多数业务场景来说完全可以忽略;如果追求极致性能,也可以采用预编译+保留视图文件的方式,发布时.cshtml会被预编译进程序集,但同时保留物理文件,更新时替换物理文件即可,系统会优先读取最新的物理文件。
- 要确保服务器上的发布目录具备写入权限,方便替换.cshtml文件。
内容的提问来源于stack exchange,提问作者yehui liu
相关产品推荐
相关产品推荐

