Ich baue eine .NET Core MVC auf der neuesten Version 2.2. Ich habe ein Problem, wenn ich Änderungen an der CSHTML-Datei vornehme und die Seite aktualisiere. Meine Änderungen werden nicht im Browser angezeigt. Ich muss das Projekt neu starten, um meine Änderungen zu sehen. Dies geschieht bereits seit einiger Zeit, daher bin ich mir nicht ganz sicher, welche Änderung dieses Problem verursacht hat.
Ich habe versucht, den "Leeren Cache und Hard Reload" des Chrome sowie andere Browser ohne Erfolg zu verwenden. Dies geschieht unter Windows und Mac mit Visual Studio für Mac und VS Code
In einem Standard-.Net Core-Projekt funktioniert es einwandfrei, daher muss sich etwas in meinem Projekt geändert haben. Ich frage mich, wo ich anfangen muss, um dieses Problem zu beheben. Ich habe versucht, fast alles in meinem Startup.cs
und Program.cs
ohne Auflösung zu kommentieren .
Antworten:
Es scheint, dass in ASP.NET Core 2.2 eine Änderung vorgenommen wurde (und ich kann keine Ankündigungen zu dieser Änderung finden). Wenn Sie nicht explizit in der Entwicklungsumgebung ausgeführt werden, werden die Rasiermesseransichten kompiliert und es werden keine Änderungen an der CSHT-Datei angezeigt
Sie können dies jedoch mit einer Konfiguration in Ihrer Startup-Klasse wie folgt deaktivieren.
Informationen zu ASP.NET Core 3.0 und höher finden Sie in der Antwort von Alexander Christov .
quelle
MissingMethodException: Method not found: 'Microsoft.Cci.IMethodReference Microsoft.Cci.ICustomAttribute.Constructor(Microsoft.CodeAnalysis.Emit.EmitContext)'. Microsoft.CodeAnalysis.CSharp.Symbol.Microsoft.CodeAnalysis.ISymbol.GetAttributes()
Gibt es eine Idee, was diese Ausnahme bedeutet? Alle anderen Seiten werden einwandfrei geladen. Nur wenn ich eine Datei bearbeite undservices.AddMvc().AddRazorOptions(options => options.AllowRecompilingViewsOnFileChange = _env.IsEnvironment("MyEnvironment"));
In ASP.NET Core 3.0 und höher ,
RazorViewEngineOptions.AllowRecompilingViewsOnFileChange
ist nicht verfügbar.Überrascht, dass das Aktualisieren einer Ansicht während der Ausführung der App nicht funktioniert hat, habe ich die folgende Lösung gefunden:
Fügen Sie Folgendes hinzu
Startup.cs
:services.AddControllersWithViews (). AddRazorRuntimeCompilation () ;
Hier ist die vollständige Erklärung für die Neugierigen ...
HTH
quelle
Ich habe gerade ein neues Projekt mit der neuesten ASP.NET MVC Core 3.1-Vorlage erstellt und Folgendes geändert, um die Laufzeit-Neukompilierung für Debug zu aktivieren:
Referenz NuGet-Paket - Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation .
Startup.cs - ConfigureServices (IServiceCollection-Dienste) WAS:
JETZT:
quelle
Sie sollten dies einfach hinzufügen:
auf die ConfigureService- Methode.
Beachten Sie, dass der folgende Code in ASP.NET Core 3.1 nicht verfügbar ist:
quelle
Unten hat mir geholfen, als Ansichten in einem separaten Projekt waren.
quelle
Wenn Sie die .net Core 2.2-App mit Befehl
dotnet watch run
ausführen, wird das Projekt nach jeder Änderung neu gestartetquelle
Ich konnte dieses Problem in Rider durch Hinzufügen der
ASPNETCORE_ENVIRONMENT=Development
Umgebungsvariablen lösen .quelle
Sind Sie absolut sicher, dass Sie 2.2 verwenden? Überprüfen Sie Ihr csproj, da es sich möglicherweise um diesen Fehler handelt. Https://github.com/aspnet/Razor/issues/2466 Sie können versuchen,
RazorCompileOnBuild
weitere Informationen zu deaktivieren. Https://docs.microsoft.com/en-us/aspnet/core/razor -pages / sdk? view = aspnetcore-2.1 # Eigenschaftenquelle
Es gibt zwei Möglichkeiten, um dieses Problem zu beheben:
1 . Überprüfen Sie die Berechtigungen des Ordners, in dem sich Ihre .sln-Datei befindet. Möglicherweise liegt ein Problem mit den Dateizugriffsberechtigungen vor, da Visual Studio möglicherweise nicht auf Dateien zugreift, wenn der IIS Express-Server ausgeführt wird, um jedes Mal neue .cshtml-Änderungen zu berücksichtigen Starten Sie den Server neu. Ich empfehle daher, die Ordnerzugriffsberechtigungen wie folgt zu bearbeiten:
Klicken Sie mit der rechten Maustaste auf Ordner-> Eigenschaften-> Sicherheit-> Klicken Sie auf die Schaltfläche Bearbeiten -> Aktivieren Sie alle Optionen-> Speichern .
Starten Sie Visual Studio neu, um Änderungen anzuzeigen.
Wenn dies nicht funktioniert, verwenden Sie die Option 2.
2. Fügen Sie in Ihrem Projekt in der Datei startup.cs die folgende Zeile hinzu: ConfigureServices () in Methode:
quelle