Estoy construyendo un .NET Core MVC en la última versión 2.2. Tengo un problema cuando hago cambios en el archivo CSHTML y actualizo la página, mis cambios no se reflejan en el navegador. Tengo que reiniciar el proyecto para ver mis cambios. Esto ha estado sucediendo durante un tiempo, por lo que no estoy exactamente seguro de qué cambio causó este problema.
Intenté usar "Vaciar caché y recargar duro" de Chrome, así como otros navegadores, sin éxito. Esto sucede en Windows y Mac usando Visual Studio para Mac y VS Code
En un proyecto .Net Core predeterminado, funciona bien, por lo que debe ser algo en mi proyecto que cambió a lo largo del camino. Me pregunto por dónde debo comenzar para depurar este problema. He intentado comentar casi todo en mi Startup.cs
y Program.cs
sin resolución.
Respuestas:
Parece que se realizó un cambio en ASP.NET Core 2.2 (y no puedo encontrar ningún anuncio sobre este cambio). Si no está ejecutando explícitamente en el entorno de 'Desarrollo', las Vistas de Razor se compilan y no verá ningún cambio realizado en .cshtml
Sin embargo, puede desactivar esto usando alguna configuración en su clase de inicio de la siguiente manera.
Para ASP.NET Core 3.0 y superior, consulte la respuesta de Alexander Christov .
fuente
MissingMethodException: Method not found: 'Microsoft.Cci.IMethodReference Microsoft.Cci.ICustomAttribute.Constructor(Microsoft.CodeAnalysis.Emit.EmitContext)'. Microsoft.CodeAnalysis.CSharp.Symbol.Microsoft.CodeAnalysis.ISymbol.GetAttributes()
Alguna idea de lo que significa esta excepción? Todas las demás páginas se cargan bien. Solo cuando edito un archivo y actualizoservices.AddMvc().AddRazorOptions(options => options.AllowRecompilingViewsOnFileChange = _env.IsEnvironment("MyEnvironment"));
En ASP.NET Core 3.0 y superior ,
RazorViewEngineOptions.AllowRecompilingViewsOnFileChange
no está disponible.Sorprendido de que actualizar una vista mientras la aplicación se está ejecutando no funcionó, descubrí la siguiente solución:
Agregue lo siguiente en
Startup.cs
:services.AddControllersWithViews (). AddRazorRuntimeCompilation () ;
Aquí está la explicación completa para los curiosos ...
HTH
fuente
Acabo de crear un nuevo proyecto utilizando la última plantilla ASP.NET MVC Core 3.1 y modifiqué lo siguiente para habilitar la recompilación en tiempo de ejecución para la depuración:
Paquete NuGet de referencia: Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation .
Startup.cs - ConfigureServices (servicios de IServiceCollection) ERA:
AHORA:
fuente
Deberías agregar esto:
al método ConfigureService .
Tenga en cuenta que el siguiente código no está disponible en ASP.NET Core 3.1:
fuente
A continuación, me ayudó cuando las vistas estaban en un proyecto separado.
fuente
Usando la aplicación en ejecución .net core 2.2 con comando,
dotnet watch run
el proyecto se reinicia después de cada cambiofuente
Pude resolver este problema en Rider agregando la
ASPNETCORE_ENVIRONMENT=Development
variable de entorno.fuente
¿Estás absolutamente seguro de que estás usando 2.2? Verifique su csproj porque podría ser este error https://github.com/aspnet/Razor/issues/2466 Puede intentar desactivar
RazorCompileOnBuild
más información https://docs.microsoft.com/en-us/aspnet/core/razor -pages / sdk? view = aspnetcore-2.1 # propiedadesfuente
Hay dos formas de resolver este problema:
1 . Verifique los permisos de la carpeta en la que se encuentra su archivo .sln.Puede haber un problema con los permisos de acceso a archivos, ya que Visual Studio puede no acceder a los archivos cuando el servidor IIS Express se está ejecutando, por lo que debe reflejar nuevos cambios .cshtml cada vez que necesite reinicie el servidor, por lo que sugiero editar los permisos de acceso a la carpeta de la siguiente manera:
Haga clic derecho en la carpeta-> propiedades-> seguridad-> haga clic en el botón editar -> marque todas las opciones-> guardar .
Reinicie Visual Studio para ver los cambios.
Si esto no funciona, utilice la opción 2.
2 .En su proyecto en el archivo startup.cs agregue la siguiente línea ConfigureServices () en el método:
fuente