web-dev-qa-db-ja.com

デバッグのためにネットコア2.1のプリコンパイル済みビューを無効にする方法

昨日、ネットコア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>
13

これは、csprojファイルでプロパティ RazorCompileOnBuild を使用して実現できます。

<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 が正しい方向を示してくれてありがとう。

28

MvcRazorCompileOnPublishをfalseに設定する必要があります。これにより、公開の一部として有効になっているビューコンパイルのすべての機能がオフになります。

<PropertyGroup>
  <MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
</PropertyGroup>
1
Nedzad G

MvcRazorFilesToCompileプロジェクトプロパティで遊ぶことができます

MvcRazorFilesToCompile:コンパイルするビューファイルを指定するアイテムグループ。デフォルトでは、これにはコンテンツとしてマークされたすべての.cshtmlファイルが含まれます。

注:空の文字列を使用しないでください。これはデフォルトと同じです( repo ):

<ItemGroup Condition="'@(MvcRazorFilesToCompile)' == ''">
      <MvcRazorFilesToCompile Include="@(Content)" Condition="'%(Extension)'=='.cshtml'" />
</ItemGroup>
0
Set