asp.net核心 – MVC6是否支持预编译视图?

前端之家收集整理的这篇文章主要介绍了asp.net核心 – MVC6是否支持预编译视图?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在< MVC6我可以在发布时预先编译.cshtml文件,以便在请求时不必首先编译它们. 可以在MVC6中预编译.cshtml文件吗?

解决方法

Visual Studio 2017的回答:

从Visual Studio解决方案资源管理器编辑您的项目.csproj,并添加MvcRazorCompileOnPublish和PreserveCompilationContext属性,其值为true,如果它不存在

<PropertyGroup>
      <TargetFramework>netcoreapp1.1</TargetFramework>
      ....
      <MvcRazorCompileOnPublish>true</MvcRazorCompileOnPublish>
      <PreserveCompilationContext>true</PreserveCompilationContext>
</PropertyGroup>

通过nuget将包Microsoft.AspNetCore.Mvc.Razor.ViewCompilation添加到您的项目中或编辑.csproj

<ItemGroup>
     ...
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="1.1.0" />
</ItemGroup>

**以下答案仅适用于ASP.NET Core RC1. **

您可以创建一个继承自RazorPreCompileModule的类,并覆盖EnablePreCompilation方法将剃刀预编译设置为true.

using Microsoft.AspNet.Mvc.Razor.Precompilation;
using Microsoft.Dnx.Compilation.CSharp;

namespace PrecompilationWebSite
{
    public class RazorPreCompilation : RazorPreCompileModule
    {
        protected override bool EnablePreCompilation(BeforeCompileContext   context) => true;
    } 
}

在Startup.cs中引用这个方法

public class Startup
{
    // Set up application services
    public void ConfigureServices(IServiceCollection services)
    {
        // Add MVC services to the services container
        services
            .AddMvc()
            .AddPrecompiledRazorViews(GetType().GetTypeInfo().Assembly);
    }

    public void Configure(IApplicationBuilder app)
    {
        app.UseCultureReplacer();

        app.UseMvcWithDefaultRoute();
    }
}

您可以在整个项目的asp.net github页面上查看预编译示例project.

您也可以在发布时编译整个应用程序.

这将发布编译为nuget包的整个应用程序.

猜你在找的asp.Net相关文章