Je construis un MVC .NET Core sur la dernière version 2.2. J'ai un problème lorsque j'apporte des modifications au fichier CSHTML et que j'actualise la page, mes modifications ne sont pas reflétées dans le navigateur. Je dois redémarrer le projet pour voir mes modifications. Cela se produit depuis un certain temps maintenant, je ne sais donc pas exactement quel changement a causé ce problème.
J'ai essayé d'utiliser le "Cache vide et le rechargement dur" du chrome ainsi que d'autres navigateurs en vain. Cela se produit sur Windows et Mac en utilisant à la fois Visual Studio pour Mac et VS Code
Dans un projet .Net Core par défaut, cela fonctionne bien, donc ce doit être quelque chose dans mon projet qui a changé en cours de route. Je me demande par où je dois commencer pour déboguer ce problème? J'ai essayé de commenter presque tout dans mon Startup.cs
et Program.cs
sans résolution.
Réponses:
Il semble qu'il y ait eu un changement dans ASP.NET Core 2.2 (et je ne trouve aucune annonce concernant ce changement). Si vous n'exécutez pas explicitement dans l'environnement 'Développement', les vues Razor sont compilées et vous ne verrez aucune modification apportée au .cshtml
Vous pouvez cependant désactiver cela en utilisant une configuration dans votre classe de démarrage comme suit.
Pour ASP.NET Core 3.0 et supérieur, consultez la réponse d' Alexander Christov .
la source
MissingMethodException: Method not found: 'Microsoft.Cci.IMethodReference Microsoft.Cci.ICustomAttribute.Constructor(Microsoft.CodeAnalysis.Emit.EmitContext)'. Microsoft.CodeAnalysis.CSharp.Symbol.Microsoft.CodeAnalysis.ISymbol.GetAttributes()
Une idée de ce que signifie cette exception? Toutes les autres pages se chargent correctement. Ce n'est que lorsque je modifie un fichier et actualise que j'obtiens cette erreurservices.AddMvc().AddRazorOptions(options => options.AllowRecompilingViewsOnFileChange = _env.IsEnvironment("MyEnvironment"));
Dans ASP.NET Core 3.0 et supérieur ,
RazorViewEngineOptions.AllowRecompilingViewsOnFileChange
n'est pas disponible.Surpris que l'actualisation d'une vue pendant que l'application s'exécute ne fonctionne pas, j'ai découvert la solution suivante:
Ajoutez ce qui suit dans
Startup.cs
:services.AddControllersWithViews (). AddRazorRuntimeCompilation () ;
Voici l' explication complète des curieux ...
HTH
la source
Je viens de créer un nouveau projet en utilisant le dernier modèle ASP.NET MVC Core 3.1 et j'ai modifié ce qui suit pour activer la recompilation d'exécution pour le débogage:
Package NuGet de référence - Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation .
Startup.cs - ConfigureServices (services IServiceCollection) WAS:
MAINTENANT:
la source
Vous devez simplement ajouter ceci:
à la méthode ConfigureService .
Sachez que le code ci-dessous n'est pas disponible dans ASP.NET Core 3.1:
la source
Ci-dessous m'a aidé lorsque les vues étaient dans un projet séparé.
la source
En utilisant l'application en cours d'exécution .net core 2.2 avec la commande,
dotnet watch run
le projet est redémarré après chaque modificationla source
J'ai pu résoudre ce problème dans Rider en ajoutant la
ASPNETCORE_ENVIRONMENT=Development
variable d'environnement.la source
Êtes-vous absolument sûr d'utiliser la version 2.2? Vérifiez votre csproj car il peut s'agir de ce bogue https://github.com/aspnet/Razor/issues/2466 Vous pouvez essayer de désactiver
RazorCompileOnBuild
plus d'informations https://docs.microsoft.com/en-us/aspnet/core/razor -pages / sdk? view = aspnetcore-2.1 # propriétésla source
Il existe deux façons de résoudre ce problème:
1 . Vérifiez les autorisations du dossier dans lequel votre fichier .sln est présent.Il peut y avoir un problème avec les autorisations d'accès aux fichiers, car Visual Studio peut ne pas accéder aux fichiers lorsque le serveur express IIS est en cours d'exécution, afin de refléter les nouvelles modifications .cshtml chaque fois que vous devez redémarrez le serveur, je suggère donc de modifier les autorisations d'accès au dossier en:
Faites un clic droit sur dossier-> propriétés-> sécurité-> cliquez sur le bouton d'édition -> cochez toutes les options-> enregistrer .
Redémarrez Visual Studio pour voir les modifications.
Si cela ne fonctionne pas, utilisez l'option 2.
2 .Dans votre projet dans startup.cs fichier ajouter cette ligne ci - dessous ConfigureServices () dans la méthode:
la source