Как отключить предварительно откомпилированные представления в net core 2.1 для отладки? - PullRequest
0 голосов
/ 10 июня 2018

Вчера я обновился до net core 2.1.

Теперь, если я отлаживаю, представления прекомпилируются, что, конечно, занимает много времени при запуске ... Можно ли вернуться к предыдущему поведению,где представления компилируются как раз вовремя, если это необходимо?

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 ]

0 голосов
/ 10 июня 2018

Это можно сделать с помощью свойства 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 , указывающей мне правильное направление.

0 голосов
/ 10 июня 2018

Вам следует установить для MvcRazorCompileOnPublish значение false, при этом он отключит все функции компиляции представления, которые включены как часть публикации.

<PropertyGroup>
  <MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
</PropertyGroup>
0 голосов
/ 10 июня 2018

Вы можете играть с MvcRazorFilesToCompile свойством проекта

MvcRazorFilesToCompile: группа элементов, которая определяет файлы представления для компиляции.По умолчанию это включает все файлы .cshtml, помеченные как содержимое.

Примечание: не используйте пустую строку, так как это то же самое, что по умолчанию ( из репозитория ):

<ItemGroup Condition="'@(MvcRazorFilesToCompile)' == ''">
      <MvcRazorFilesToCompile Include="@(Content)" Condition="'%(Extension)'=='.cshtml'" />
</ItemGroup>
0 голосов
/ 10 июня 2018

С Миграция с ASP.NET Core 1.x на 2.0 . Вам необходимо установить для MvcRazorCompileOnPublish значение false.

...