Frage Unterstützt MVC6 vorkompilierte Ansichten?


In <MVC6 konnte ich .cshtml-Dateien vorkompilieren, um sie zu veröffentlichen, so dass sie beim ersten Aufruf nicht kompiliert werden mussten.

Ist es möglich, .cshtml-Dateien in MVC6 vorzukompilieren?


14
2017-11-04 09:32


Ursprung


Antworten:


Antwort für Visual Studio 2017:

Bearbeiten Sie Ihr Projekt .csproj aus Visual Studio-Projektmappen-Explorer und fügen Sie hinzu MvcRazorCompileOnPublish und PreserveCompilationContext Eigenschaften mit dem Wert "True", wenn sie nicht bereits vorhanden sind

<PropertyGroup>
      <TargetFramework>netcoreapp1.1</TargetFramework>
      ....
      <MvcRazorCompileOnPublish>true</MvcRazorCompileOnPublish>
      <PreserveCompilationContext>true</PreserveCompilationContext>
</PropertyGroup>

Fügen Sie das Paket hinzu Microsoft.AspNetCore.Mvc.Razor.ViewCompilation zu Ihrem Projekt über nuget oder Bearbeiten der .csproj

<ItemGroup>
     ...
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="1.1.0" />
</ItemGroup>

** Die folgende Antwort galt nur für ASP.NET Core RC1. **

Sie können eine Klasse erstellen, von der er erbt RazorPreCompileModule und überschreibe die EnablePreCompilation Methode, um Rasierklingenpräcillation als wahr zu setzen.

using Microsoft.AspNet.Mvc.Razor.Precompilation;
using Microsoft.Dnx.Compilation.CSharp;

namespace PrecompilationWebSite
{
    public class RazorPreCompilation : RazorPreCompileModule
    {
        protected override bool EnablePreCompilation(BeforeCompileContext   context) => true;
    } 
}

Im Startup.cs referenziere diese Methode:

public class Startup
{
    // Set up application services
    public void ConfigureServices(IServiceCollection services)
    {
        // Add MVC services to the services container
        services
            .AddMvc()
            .AddPrecompiledRazorViews(GetType().GetTypeInfo().Assembly);
    }

    public void Configure(IApplicationBuilder app)
    {
        app.UseCultureReplacer();

        app.UseMvcWithDefaultRoute();
    }
}

Sie können sich das Beispiel der Vorkompilierung ansehen Projekt auf der Asp.net Github-Seite für das gesamte Projekt.

Sie können alternativ auch Ihre gesamte App kompilieren, wenn Sie sie veröffentlichen.

enter image description here

die die gesamte App veröffentlicht, die als nugget-Paket kompiliert wurde.


12
2017-11-04 10:45



csproj (VS 2017) Antwort

Fügen Sie einen Verweis hinzu Microsoft.AspNetCore.Mvc.Razor.ViewCompilation:

<ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.ViewCompilation" Version="1.1.0-msbuild3-update1" PrivateAssets="All" />
</ItemGroup>

Schalten Sie nach der Veröffentlichung des Projekts die Zusammenstellung der Messeransicht ein.

<PropertyGroup>
    <MvcRazorCompileOnPublish>true</MvcRazorCompileOnPublish>
</PropertyGroup>

Sehen Dies GitHub-Problem für weitere Details.

xproj und project.json (VS 2015) Antwort

Razor Pre-Compilation wurde in ASP.NET Core 1.0 MVC 6 RC2 fallen gelassen, wurde aber zurückgebracht in ASP.NET Core 1.1 mit einem Tool, das Sie wie folgt hinzufügen können:

  1. Fügen Sie einen Verweis hinzu Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Design unter dem dependencies Abschnitt so:
"Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Design": {
    "Typ": "bauen",
    "Version": "1.1.0-Vorschau4-Finale"
}
  1. Fügen Sie einen Verweis hinzu Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Tools unter dem tools Abschnitt so:
"Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Tools": "1.1.0-preview4-final",
  1. Fügen Sie ein postpublish-Skript hinzu, um den View-Compiler aufzurufen:
"Skripte": {
   "postpublish": "dotnet razor-precompile --konfiguration% publish: Konfiguration% --framework% publish: TargetFramework% --output-path% publish: Ausgabepfad%% publish: ProjectPath%"
}

20
2018-05-23 16:38



Die Razor View-Vorkompilierung wird ab ASP.NET Core 1.1 unterstützt.

Hier ist die Ankündigung: Ankündigung der schnellsten ASP.NET noch, ASP.NET Core 1.1 RTM

Es sagte:

Die Razor-Syntax für Ansichten bietet eine flexible Entwicklungserfahrung   Die Kompilierung der Sichten findet zur Laufzeit automatisch statt   Die Ansicht wird ausgeführt. Es gibt jedoch einige Szenarien, in denen Sie dies tun   nicht wollen, dass die Razor-Syntax zur Laufzeit kompiliert wird. Sie können jetzt das   Razor sieht, dass Ihre Anwendung darauf verweist und sie mit Ihrem System bereitstellt   Anwendung. So aktivieren Sie die Kompilierung von Ansichten als Teil der Veröffentlichung von   Anwendung,

  1. Fügen Sie einen Verweis hinzu   "Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Design" unter der   Abschnitt "Abhängigkeiten".
  2. Fügen Sie einen Verweis hinzu   "Microsoft.AspNetCore.Mvc.Razor.ViewCompilation.Tools" unter den Tools   Sektion
  3. Fügen Sie ein postpublish-Skript hinzu, um den View-Compiler aufzurufen:
"scripts": {
   "postpublish": "dotnet razor-precompile --configuration %publish:Configuration% --framework %publish:TargetFramework% --output-path %publish:OutputPath% %publish:ProjectPath%"
}

0
2017-11-23 13:30