AspNetCore 3.1 发布 Razor 动态编译

前言

做发布后发现没有View文件夹,纠结好久,突然在https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.1 看到有人提出同样的问题,在这里记录一下

1 安装packge

dotnet add package Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation

2 修改Startup.ConfigureServices

public void ConfigureServices(IServiceCollection services)
{
    services.AddRazorPages()
        .AddRazorRuntimeCompilation(); // <==添加部分
}

3 修改PublishProfiles pubxml发布文件

<MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
<CopyRazorGenerateFilesToPublishDirectory>true</CopyRazorGenerateFilesToPublishDirectory>

CopyRazorGenerateFilesToPublishDirectory 就是这个配置

其它

dotnet publish -r linux-x64 -c Release /p:PublishSingleFile=true /p:PublishTrimmed=true

/p:PublishSingleFile=true打包成独立文件
/p:PublishTrimmed=true剪裁未使用程序集