Selon la documentation , les vues Razor doivent, par défaut, recompiler en cas de modification sur les environnements locaux pour ASP.NET Core 3.0.
Cependant, mon projet ne le fait pas localement. Si je change une vue et actualise lorsque je débogue localement, la modification n'est pas reflétée. Je dois arrêter la solution, réexécuter, puis voir le changement.
Je fais cela sur un modèle d'application Web ASP.NET Core par défaut sur Visual Studio 2019 avec ASP.NET Core 3.0.0 Preview 2 à l'aide de pages Razor. Une idée si j'ai besoin de modifier les paramètres pour activer cette fonctionnalité?
MISE À JOUR NOV 2019 POUR LA VERSION COMPLÈTE 3.0:
Cette question suscite encore beaucoup de vues. Quelques réponses ont été citées à ajouter
services.AddControllersWithViews().AddRazorRuntimeCompilation();
À votre ConfigureServices()
fonction Startup.cs
après avoir ajouté le Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
package NuGet. Dans mon cas, j'utilise uniquement Razor Pages, donc je n'appelle pas AddControllersWithViews()
. Au lieu de cela, cela a fonctionné pour moi:
services.AddRazorPages().AddRazorRuntimeCompilation();
la source
.AddRazorRuntimeCompilation();
Merci!Réponses:
OK, il semble que ce n'est pas encore pris en charge :(
Vous pouvez en savoir plus sur le problème ici https://github.com/aspnet/Announcements/issues/343
Les applications qui nécessitent une compilation d'exécution ou une recompilation des fichiers Razor doivent:
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
package. Il sera disponible dans le cadre de la version 3.0.0-preview3 .ConfigureServices
pour inclure un appel àAddMvcRazorRuntimeCompilation
:la source
AddMvcRazorRuntimeCompilation
estAddRazorRuntimeCompilation
avec ASP.Net Core 3.0 Preview 4Pour la version ASP.NET Core 3:
https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.0
Il peut également être activé sous condition uniquement pour le développement local, cité à partir du lien:
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 }
la source
Pour récupérer la compilation des vues d'exécution dans
ASP.NET Core
3Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
services.AddMvc().AddRazorRuntimeCompilation()
Microsoft.VisualStudio.Web.CodeGeneration.Design
s'il y a une incompatibilité de version sur leMicrosoft.CodeAnalysis.Common
packagela source
La compilation d'exécution est activée à l'aide du
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
package. Pour activer la compilation d'exécution, les applications doivent:Installez le
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
package NuGet.Mettez à jour la
Startup.ConfigureServices
méthode du projet pour inclure un appel àAddRazorRuntimeCompilation
:https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-compilation?view=aspnetcore-3.0
la source
Pour récupérer la compilation Razor Views à l'exécution dans ASP.NET Core 3.1:
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
package NuGet.Startup.ConfigureServices
méthode du projet pour inclure un appel àAddRazorRuntimeCompilation
.services.AddRazorPages().AddRazorRuntimeCompilation()
;Compilation de fichiers Razor dans ASP.NET Core 3.1
la source
Étape 1: installez le package ci-dessous à partir de NuGet Package Manager for Solution.
Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation
Étape 2: ajoutez le code ci-dessous dans le fichier ConfigureServices du fichier Startup.cs
services.AddControllersWithViews (). AddRazorRuntimeCompilation ();
Enregistrez la page, puis actualisez le navigateur client.
Si vous utilisez Razor, ajoutez le code des services.AddRazorPages (). AddRazorRuntimeCompilation ();
la source
Juste une note supplémentaire - vous voudrez peut-être activer uniquement conditionnellement cette compilation d'exécution, afin que la sortie publiée:
Activer conditionnellement la compilation d'exécution
la source
Dans .NET Core 3.1, vous devez désactiver la génération du
views.dll
fichier.Ajoutez le code ci-dessous à votre
.csproj
fichier (à la racine de votre projet):<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>
Installez le package ci-dessous à partir du gestionnaire de packages NuGet pour la solution.
Ajoutez le code ci-dessous à la
ConfigureServices
méthode de votreStartup.cs
fichier:Ou
Ou
Après cela, publiez à nouveau et exécutez-le. Ça va marcher.
la source
Le moyen le plus simple de configurer Runtime Compilation pour le développement local uniquement consiste à mettre à jour les profils de lancement dans
launchSettings.json
. Cette méthode ne nécessite aucune modification de code pour configurer un projet qui s'exécute localement (cela n'affectera pas votre production).Voir la documentation officielle :
Exemple:
{ "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" } } } }
la source