web-dev-qa-db-de.com

Wie deaktiviere ich vorkompilierte Ansichten in Net Core 2.1 für das Debuggen?

Gestern habe ich auf Net Core 2.1 aktualisiert.

Wenn ich jetzt debugge, werden die Ansichten vorkompiliert, was beim Start natürlich viel Zeit in Anspruch nimmt. Kann ich auf das vorherige Verhalten zurückgreifen, bei dem die Ansichten bei Bedarf gerade noch rechtzeitig kompiliert werden?

Output

Ich habe keinen Hinweis auf die Vorkompilierung in meinem csproj. Kommt es aus dem Metapaket?

  <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

Dies kann mit der Eigenschaft RazorCompileOnBuild in der csproj-Datei erreicht werden:

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

Auf diese Weise werden die Razor-Dateien nur während der Veröffentlichung vorkompiliert.

Abhängig vom Verwendungszweck möchten Sie dies auch abhängig von der Build-Konfiguration konfigurieren:

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

Vielen Dank an Mark G , der mich in die richtige Richtung weist.

28

Sie sollten MvcRazorCompileOnPublish auf false setzen. Dadurch werden alle Funktionen der Ansichtskompilierung deaktiviert, die im Rahmen der Veröffentlichung aktiviert werden.

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

Sie können mit der Projekteigenschaft MvcRazorFilesToCompile spielen

MvcRazorFilesToCompile: Elementgruppe, die die zu kompilierenden Anzeigedateien angibt. Dies schließt standardmäßig alle als Inhalt markierten .cshtml-Dateien ein.

Hinweis: Verwenden Sie keine leere Zeichenfolge, da dies mit der Standardzeichenfolge ( from repo ) identisch ist:

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