网站 建设开发合同模板,做公司网站的推广工作怎样,申请专利,优惠劵网站怎么做预编译预编译是ASP .Net Core的默认方式。在发布时#xff0c;默认会将系统中的所有Razor视图进行预编译。编译好的视图DLL统一命名为 xxx.PrecompiledViews.dll 或者 xxx.Views.dll动态编译将项目整个配置成动态编译很简单#xff0c;添加一个配置项目MvcRazorCompileOnPubl… 预编译预编译是ASP .Net Core的默认方式。在发布时默认会将系统中的所有Razor视图进行预编译。编译好的视图DLL统一命名为 xxx.PrecompiledViews.dll 或者 xxx.Views.dll动态编译将项目整个配置成动态编译很简单添加一个配置项目MvcRazorCompileOnPublish值为false即可PropertyGroup MvcRazorCompileOnPublishfalse/MvcRazorCompileOnPublish/PropertyGroup这样在发布的时候所有的Razor视图都不会被预编译了并且所有的视图都会一同被发布。注意在ASP .Net 2.2以后仅在开发环境下修改视图可时时生效。发布以后产线环境修改视图是不会立即生效的要重启程序才会生效。详细可参阅https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?viewaspnetcore-2.2如果希望在产线环境也可以修改视图时时生效需要主动设置RazorViewEngineOptions.AllowRecompilingViewsOnFileChange的值为truepublic class RazorViewEngineOptionsSetup : ConfigureOptionsRazorViewEngineOptions{ public RazorViewEngineOptionsSetup(IHostingEnvironment hostingEnvironment, IPluginLoader loader) : base(options { options.AllowRecompilingViewsOnFileChange true; }) { }}然后添加到容器中1services.TryAddEnumerable(ServiceDescriptor.SingletonIConfigureOptionsRazorViewEngineOptions, RazorViewEngineOptionsSetup());混合编译预编译和动态编译都有各自的优点你可以选择将它们混合起来使用。例如如果你希望在发布时只预编译部分视图而部分视图要采用动态编译的模式可以在项目文件上配置排除不需要预编译的视图。例如将Views目录下的全部进行预编译而主题目录和邮件模板目录下的视图不需要预编译ItemGroup MvcRazorFilesToCompile IncludeViews\**\*.cshtml Excludewwwroot\themes\**\*.cshtml;EmailTemplates\**\*.cshtml //ItemGroup进阶关于更多Razor的配置可以参阅微软的官方说明文档https://docs.microsoft.com/en-us/aspnet/core/razor-pages/sdk?viewaspnetcore-2.2原文地址http://www.zkea.net/codesnippet/detail/razor-compilation.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com