zoukankan      html  css  js  c++  java
  • .net core3.1 mvc视图运行时编译

    有时为了方便调试,当修改cshtml文件时,不需要重新编译,操作方法如下

    • 如果是新项目,在创建项目时“启用Razor运行时编译”打勾即可  

      

    • 如果是现有项目

      方法1(原理同上):

      1.项目右键->编辑项目文件:

    1 <Project Sdk="Microsoft.NET.Sdk.Web">
    2   <PropertyGroup>
    3     <TargetFramework>netcoreapp3.1</TargetFramework>
    4     <CopyRefAssembliesToPublishDirectory>false</CopyRefAssembliesToPublishDirectory>
    5   </PropertyGroup>
    6   <ItemGroup>
    7     <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.3" />
    8   </ItemGroup>
    9 </Project>

      2.launchSettings.json

      "profiles": {
        "IIS Express": {
          "commandName": "IISExpress",
          "launchBrowser": true,
          "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development",
            "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
          }
        },
        "WebApplication4": {
          "commandName": "Project",
          "launchBrowser": true,
          "applicationUrl": "http://localhost:5000",
          "environmentVariables": {
            "ASPNETCORE_ENVIRONMENT": "Development",
            "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation"
          }
        }
      }

      

     方法2:

    1.编辑项目文件如下

    <Project Sdk="Microsoft.NET.Sdk.Web">
      <PropertyGroup>
        <TargetFramework>netcoreapp3.1</TargetFramework>
      </PropertyGroup>
      <ItemGroup>
        <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.3" Condition="'$(Configuration)' == 'Debug'" />
      </ItemGroup>
    </Project>
    

    2.修改startp.cs文件  

        public class Startup
        { 
            public Startup(IConfiguration configuration, IWebHostEnvironment env)
            {
                Configuration = configuration;
                Env = env;
            }
            public IWebHostEnvironment Env { get; set; }
    
            public IConfiguration Configuration { get; }
    
            // This method gets called by the runtime. Use this method to add services to the container.
            public void ConfigureServices(IServiceCollection services)
            {
                IMvcBuilder mvcBuilder = services.AddControllersWithViews();
    #if DEBUG
                if (Env.IsDevelopment())
                    mvcBuilder.AddRazorRuntimeCompilation(); 
    #endif
            }

    最后:以上无论哪种方法都加上这个条件后,会使用发布后的文件夹比较干净

    <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.3" Condition="'$(Configuration)' == 'Debug'" />

    未添加 Condition="'$(Configuration)' == 'Debug'"

    添加 Condition="'$(Configuration)' == 'Debug'"后:

     

  • 相关阅读:
    mysql 索引
    私有变量 _变量名 、__变量名、__变量名__的区别
    python中 is 和 == 的区别
    赋值,浅拷贝,深拷贝
    Django model字段类型清单
    (转)nginx uwsgi wsgi django 这些东西究竟是什么关系
    线性结构
    复杂度_最大子列和问题(2)
    复杂度_最大子列和问题(1)
    应用实例——最大子列和问题
  • 原文地址:https://www.cnblogs.com/slwangzi/p/12830780.html
Copyright © 2011-2022 走看看