Estou construindo um .NET Core MVC na versão mais recente 2.2. Tenho um problema ao fazer alterações no arquivo CSHTML e atualizar a página; minhas alterações não são refletidas no navegador. Tenho que reiniciar o projeto para ver minhas mudanças. Isso já vem acontecendo há algum tempo, então não tenho certeza de qual mudança causou esse problema.
Eu tentei usar o "Empty Cache and Hard Reload" do cromo, bem como outros navegadores, sem sucesso. Isso acontece no Windows e Mac usando o Visual Studio para Mac e o VS Code
Em um projeto padrão .Net Core ele funciona bem, então deve ser algo em meu projeto que mudou ao longo do caminho. Estou me perguntando por onde devo começar para depurar esse problema. Já tentei comentar quase tudo na minha Startup.cs
e Program.cs
sem resolução.
Respostas:
Parece que houve uma mudança no ASP.NET Core 2.2 (e não consigo encontrar nenhum anúncio sobre essa mudança). Se você não estiver executando explicitamente no ambiente de 'Desenvolvimento', as Visualizações do Razor são compiladas e você não verá nenhuma alteração feita no .cshtml
No entanto, você pode desligar isso usando alguma configuração em sua classe de inicialização da seguinte maneira.
Para ASP.NET Core 3.0 e superior, consulte a resposta de Alexander Christov .
fonte
MissingMethodException: Method not found: 'Microsoft.Cci.IMethodReference Microsoft.Cci.ICustomAttribute.Constructor(Microsoft.CodeAnalysis.Emit.EmitContext)'. Microsoft.CodeAnalysis.CSharp.Symbol.Microsoft.CodeAnalysis.ISymbol.GetAttributes()
Alguma ideia do que essa exceção significa? Todas as outras páginas carregam bem. Somente quando edito eservices.AddMvc().AddRazorOptions(options => options.AllowRecompilingViewsOnFileChange = _env.IsEnvironment("MyEnvironment"));
No ASP.NET Core 3.0 e superior ,
RazorViewEngineOptions.AllowRecompilingViewsOnFileChange
não está disponível.Surpreso que atualizar uma visualização enquanto o aplicativo está em execução não funcionou, descobri a seguinte solução:
Adicione o seguinte em
Startup.cs
:services.AddControllersWithViews (). AddRazorRuntimeCompilation () ;
Aqui está a explicação completa para os curiosos ...
HTH
fonte
Acabei de criar um novo projeto usando o modelo ASP.NET MVC Core 3.1 mais recente e alterei o seguinte para habilitar a recompilação do tempo de execução para depuração:
Pacote NuGet de referência - Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation .
Startup.cs - ConfigureServices (IServiceCollection services) WAS:
AGORA:
fonte
Você deve apenas adicionar isto:
para o método ConfigureService .
Esteja ciente de que o código abaixo não está disponível no ASP.NET Core 3.1:
fonte
Abaixo me ajudou quando as visualizações estavam em projetos separados.
fonte
Usando o aplicativo .net core 2.2 em execução com o comando,
dotnet watch run
o projeto é reiniciado após cada alteraçãofonte
Consegui resolver esse problema no Rider adicionando a
ASPNETCORE_ENVIRONMENT=Development
variável de ambiente.fonte
Você tem certeza absoluta de que está usando o 2.2? Verifique seu csproj porque pode ser este bug https://github.com/aspnet/Razor/issues/2466 Você pode tentar desligar
RazorCompileOnBuild
mais informações https://docs.microsoft.com/en-us/aspnet/core/razor -pages / sdk? view = aspnetcore-2.1 # propertiesfonte
Existem duas maneiras de resolver esse problema:
1 . Verifique as permissões da pasta na qual o seu arquivo .sln está presente. Pode haver um problema com as permissões de acesso ao arquivo, pois o Visual Studio pode não acessar os arquivos quando o servidor expresso do IIS está em execução, para refletir novas alterações .cshtml sempre que precisar reinicie o servidor, então sugiro editar as permissões de acesso à pasta:
Clique com o botão direito na pasta-> propriedades-> segurança-> clique no botão editar -> verifique todas as opções-> salvar .
Reinicie o Visual Studio para ver as mudanças.
Se isso não funcionar, use 2 opções.
2. Em seu projeto no arquivo startup.cs, adicione a linha abaixo ConfigureServices () no método:
fonte