web-dev-qa-db-fra.com

Comment désactiver les vues précompilées dans Net Core 2.1 pour le débogage?

Hier, j'ai mis à jour le net core 2.1.

Maintenant, si je débogue, les vues sont précompilées, ce qui prend bien sûr beaucoup de temps au démarrage ... Est-il possible de revenir au comportement précédent, où les vues sont compilées juste à temps, si cela est nécessaire?

Output

Je n'ai aucune référence liée à la précompilation dans mon csproj. Est-ce quelque chose qui vient du méta-paquet?

  <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

Cela peut être accompli en utilisant la propriété RazorCompileOnBuild dans le fichier csproj:

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

De cette façon, les fichiers Razor ne sont précompilés que lors de la publication.

En fonction du cas d'utilisation, vous souhaitez également le configurer en fonction de la configuration de construction:

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

Un grand merci à Mark G me pointant dans la bonne direction.

28

Vous devez définir MvcRazorCompileOnPublish sur false, cela désactivera toutes les fonctions de compilation de vues qui sont activées dans le cadre de la publication.

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

Vous pouvez jouer avec la propriété de projet MvcRazorFilesToCompile

MvcRazorFilesToCompile: groupe d'éléments qui spécifie les fichiers de vue à compiler. Par défaut, cela inclut tous les fichiers .cshtml marqués comme contenu.

Remarque: n'utilisez pas la chaîne vide, car c'est la même chose que par défaut ( from repo ):

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