昨日、ネットコア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" />
<!--<PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="2.0.0" PrivateAssets="All" />-->
</ItemGroup>
これは、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 が正しい方向を示してくれてありがとう。
MvcRazorCompileOnPublishをfalseに設定する必要があります。これにより、公開の一部として有効になっているビューコンパイルのすべての機能がオフになります。
<PropertyGroup>
<MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish>
</PropertyGroup>
MvcRazorFilesToCompile
プロジェクトプロパティで遊ぶことができます
MvcRazorFilesToCompile:コンパイルするビューファイルを指定するアイテムグループ。デフォルトでは、これにはコンテンツとしてマークされたすべての.cshtmlファイルが含まれます。
注:空の文字列を使用しないでください。これはデフォルトと同じです( repo ):
<ItemGroup Condition="'@(MvcRazorFilesToCompile)' == ''">
<MvcRazorFilesToCompile Include="@(Content)" Condition="'%(Extension)'=='.cshtml'" />
</ItemGroup>