Gemäß der Dokumentation sollten Razor-Ansichten bei Änderungen in lokalen Umgebungen für ASP.NET Core 3.0 standardmäßig neu kompiliert werden.
Mein Projekt tut dies jedoch nicht lokal. Wenn ich beim lokalen Debuggen eine Ansicht ändere und aktualisiere, wird die Änderung nicht übernommen. Ich muss die Lösung stoppen, erneut ausführen und dann die Änderung sehen.
Ich mache dies auf einer Standardvorlage für ASP.NET Core-Webanwendungen in Visual Studio 2019 mit ASP.NET Core 3.0.0 Preview 2 unter Verwendung von Razor-Seiten. Haben Sie eine Idee, ob ich Einstellungen ändern muss, um diese Funktion zu aktivieren?
UPDATE NOV 2019 FÜR 3.0 VOLLSTÄNDIGE VERÖFFENTLICHUNG:
Diese Frage bekommt immer noch viele Ansichten. Einige Antworten haben zitiert, um hinzuzufügen
services.AddControllersWithViews().AddRazorRuntimeCompilation();
Zu Ihrer ConfigureServices()
Funktion Startup.cs
nach dem Hinzufügen des Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
NuGet-Pakets. In meinem Fall verwende ich nur Rasiermesserseiten, also rufe ich nicht an AddControllersWithViews()
. Stattdessen hat das bei mir funktioniert:
services.AddRazorPages().AddRazorRuntimeCompilation();
quelle
.AddRazorRuntimeCompilation();
Danke!Antworten:
OK, es sieht so aus, als ob es noch nicht unterstützt wird :(
Weitere Informationen zu diesem Problem finden Sie hier https://github.com/aspnet/Announcements/issues/343
Anwendungen, die eine Laufzeitkompilierung oder Neukompilierung von Razor-Dateien erfordern, sollten:
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
Paket einen Verweis hinzu . Es wird als Teil der Version 3.0.0-Preview3 verfügbar sein .ConfigureServices
, um einen Aufruf an Folgendes aufzunehmenAddMvcRazorRuntimeCompilation
:quelle
AddMvcRazorRuntimeCompilation
istAddRazorRuntimeCompilation
mit ASP.Net Core 3.0 Vorschau 4Für ASP.NET Core 3 Release-Version:
https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.0
Es kann auch nur für die lokale Entwicklung bedingt aktiviert werden, wie aus dem Link hervorgeht:
public Startup(IConfiguration configuration, IWebHostEnvironment env) { Configuration = configuration; Env = env; } public IWebHostEnvironment Env { get; set; } public IConfiguration Configuration { get; } public void ConfigureServices(IServiceCollection services) { IMvcBuilder builder = services.AddRazorPages(); #if DEBUG if (Env.IsDevelopment()) { builder.AddRazorRuntimeCompilation(); } #endif }
quelle
So erhalten Sie die Kompilierung der Laufzeitansicht in
ASP.NET Core
3Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
services.AddMvc().AddRazorRuntimeCompilation()
Microsoft.VisualStudio.Web.CodeGeneration.Design
wenn dasMicrosoft.CodeAnalysis.Common
Paket eine Versionsinkongruenz aufweistquelle
Die Laufzeitkompilierung wird mithilfe des
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
Pakets aktiviert . Um die Laufzeitkompilierung zu aktivieren, müssen Apps:Installieren Sie das
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
NuGet-Paket.Aktualisieren Sie die Projektmethode
Startup.ConfigureServices
, um einen Aufruf an Folgendes aufzunehmenAddRazorRuntimeCompilation
:https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.0
quelle
So erhalten Sie die Razor Views-Kompilierung zur Laufzeit in ASP.NET Core 3.1 zurück:
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
NuGet-Paket.Startup.ConfigureServices
, um einen Aufruf von aufzunehmenAddRazorRuntimeCompilation
.services.AddRazorPages().AddRazorRuntimeCompilation()
;;Kompilierung von Rasiermesserdateien in ASP.NET Core 3.1
quelle
Schritt 1: Installieren Sie das folgende Paket von NuGet Package Manager for Solution.
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
Schritt 2: Fügen Sie den folgenden Code in die Datei ConfigureServices of Startup.cs ein
services.AddControllersWithViews (). AddRazorRuntimeCompilation ();
Speichern Sie die Seite und aktualisieren Sie den Client-Browser.
Wenn Sie Razor verwenden, fügen Sie den Code für services.AddRazorPages () hinzu. AddRazorRuntimeCompilation ();
quelle
Nur ein zusätzlicher Hinweis - Sie möchten diese Laufzeitkompilierung möglicherweise nur bedingt aktivieren, damit die veröffentlichte Ausgabe:
Aktivieren Sie die Laufzeitkompilierung bedingt
quelle
In .NET Core 3.1 müssen Sie die Generierung der
views.dll
Datei deaktivieren .Fügen Sie der
.csproj
Datei den folgenden Code hinzu (im Stammverzeichnis Ihres Projekts):<PropertyGroup> <TargetFramework>netcoreapp3.1</TargetFramework> <UserSecretsId>...</UserSecretsId> <!-- add from this line: --> <CopyRazorGenerateFilesToPublishDirectory>true</CopyRazorGenerateFilesToPublishDirectory> <CopyRefAssembliesToPublishDirectory>false</CopyRefAssembliesToPublishDirectory> <MvcRazorCompileOnPublish>false</MvcRazorCompileOnPublish> <RazorCompileOnBuild>false</RazorCompileOnBuild> <!-- to this line. --> </PropertyGroup>
Installieren Sie das folgende Paket aus dem NuGet Package Manager für die Lösung.
Fügen Sie der
ConfigureServices
Methode IhrerStartup.cs
Datei den folgenden Code hinzu :Oder
Oder
Veröffentlichen Sie danach erneut und führen Sie es aus. Es wird klappen.
quelle
Die einfachste Möglichkeit, die Laufzeitkompilierung nur für die lokale Entwicklung zu konfigurieren, besteht darin, die Startprofile in zu aktualisieren
launchSettings.json
. Diese Methode erfordert keine Codeänderungen, um ein Projekt zu konfigurieren, das lokal ausgeführt wird (dies hat keine Auswirkungen auf Ihre Produktion).Siehe die offizielle Dokumentation :
Beispiel:
{ "iisSettings": { "windowsAuthentication": false, "anonymousAuthentication": true, "iisExpress": { "applicationUrl": "http://localhost:57676", "sslPort": 44364 } }, "profiles": { "IIS Express": { "commandName": "IISExpress", "launchBrowser": true, "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" } }, "RazorPagesApp": { "commandName": "Project", "launchBrowser": true, "applicationUrl": "https://localhost:5001;http://localhost:5000", "environmentVariables": { "ASPNETCORE_ENVIRONMENT": "Development", "ASPNETCORE_HOSTINGSTARTUPASSEMBLIES": "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" } } } }
quelle