代码之家  ›  专栏  ›  技术社区  ›  Christian Gollhardt

如何禁用Net Core 2.1中的预编译视图进行调试?

  •  12
  • Christian Gollhardt  · 技术社区  · 6 年前

    昨天我更新到了net core 2.1。

    现在,如果我正在调试,视图将被预编译,这在启动过程中当然需要很长时间…如果需要的话,是否有可能回到以前的行为,即视图是及时编译的?

    我的csproj中没有与预编译相关的参考。它是来自元包的东西吗?

    <itemgroup>
    <packagereference include=“jetbrains.annotations”version=“11.1.0”/>
    <packagereference include=“microsoft.aspnetcore.all”version=“2.1.0”/>
    <packagereference include=“microsoft.entityframeworkcore.tools”version=“2.1.0”privateassets=“all”/>
    <packagereference include=“swashbuckle.aspnetcore”version=“2.5.0”/>
    和LT;!--<packagereference include=“microsoft.aspnetcore.mvc.razor.viewcompilation”version=“2.0.0”privateassets=“all”/>gt;-->
    </itemgroup>
    
    
    

    Output

    我的csproj中没有与预编译相关的参考。它是来自元包的东西吗?

      <ItemGroup>
        <PackageReference Include="JetBrains.Annotations" Version="11.1.0" />
        <PackageReference Include="Microsoft.AspNetCore.All" Version="2.1.0" />
        <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.0" PrivateAssets="All" />
        <PackageReference Include="Swashbuckle.AspNetCore" Version="2.5.0" />
        <!--<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="2.0.0" PrivateAssets="All" />-->
      </ItemGroup>
    
    4 回复  |  直到 6 年前
        1
  •  27
  •   Christian Gollhardt    6 年前

    这可以使用属性来完成 RazorCompileOnBuild 在csproj文件中:

    <PropertyGroup>
      <TargetFramework>netcoreapp2.1</TargetFramework>
      <RazorCompileOnBuild>false</RazorCompileOnBuild>
      <RazorCompileOnPublish>true</RazorCompileOnPublish>
    </PropertyGroup>
    

    这样,Razor文件仅在发布期间预编译。

    根据用例的不同,您还需要根据构建配置来配置:

    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
      <RazorCompileOnBuild>false</RazorCompileOnBuild>
      <RazorCompileOnPublish>true</RazorCompileOnPublish>
    </PropertyGroup>
    

    多亏了 Mark G 把我指向正确的方向。

        2
  •  1
  •   Nedzad G    6 年前

    您应该将mvcrazorcompileonPublish设置为false,这样,它将关闭作为发布的一部分启用的视图编译的所有功能。

    <PropertyGroup>
      <MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
    </PropertyGroup>
    
        3
  •  0
  •   Set    6 年前

    你可以玩 MvcRazorFilesToCompile 项目属性

    mvcrazorfilestocompile:指定要编译的视图文件的项组。默认情况下,这包括标记为内容的所有.cshtml文件。

    注意:不要使用空字符串,因为这与默认值相同( from repo ):

    <ItemGroup Condition="'@(MvcRazorFilesToCompile)' == ''">
          <MvcRazorFilesToCompile Include="@(Content)" Condition="'%(Extension)'=='.cshtml'" />
    </ItemGroup>
    
        4
  •  -2
  •   Mark G    6 年前

    Migrate from ASP.NET Core 1.x to 2.0 你需要设置的指南 MvcRazorCompileOnPublish 错误。