Suporte de Recarga Dinâmica do .NET para ASP.NET Core
A Recarga Dinâmica do .NET aplica alterações de código, incluindo alterações em folhas de estilo, a um aplicativo em execução sem reiniciar o aplicativo e sem perder o estado do aplicativo. A Recarga Dinâmica tem suporte para todos os projetos ASP.NET Core 6.0 e posteriores.
Geralmente, o código atualizado é executado novamente para entrar em vigor com as seguintes condições:
- Algumas lógicas de inicialização só são executadas uma vez:
- Middleware, a menos que a atualização de código seja para um representante de middleware embutido.
- Serviços configurados.
- Criação e configuração de rota, a menos que a atualização de código seja para um representante de manipulador de rotas (por exemplo,
OnInitialized
).
- Em Blazor aplicativos, a estrutura dispara um Razor componente renderizado automaticamente.
- Em aplicativos MVC e Páginas do Razor, a Recarga Dinâmica dispara automaticamente uma atualização do navegador.
- A remoção de um atributo de Razorparâmetro de componente não faz com que o componente seja renderizado novamente. O aplicativo deve ser reiniciado.
Para obter informações sobre cenários com suporte, consulte Alterações de código com suporte (C# e Visual Basic).
Blazor WebAssembly
Blazor WebAssembly A Recarga Dinâmica dá suporte às seguintes alterações de código:
- Novos tipos.
- Classes aninhadas.
- A maioria das alterações nos corpos do método, como adicionar, remover e editar variáveis, expressões e instruções.
- Alterações nos corpos de expressões lambda e funções locais.
- Adição de métodos de instância e estáticos aos tipos existentes.
- Adicionar os campos estáticos e de instância, eventos e propriedades aos tipos existentes.
- Adição de lambdas estáticos aos métodos existentes.
- Adição de lambdas que capturam
this
em métodos existentes que já capturaramthis
anteriormente.
Observe que quando um atributo é removido que anteriormente define o valor de um parâmetro de componente, o componente é descartado e inicializado novamente para definir o parâmetro removido de volta para seu valor padrão.
As seguintes alterações de código não têm suporte para aplicativos Blazor WebAssembly:
- Adicionando um novo
await
operador ouyield
expressão de palavra-chave. - Alterando os nomes dos parâmetros de método.
Blazor WebAssembly A Recarga Dinâmica dá suporte às seguintes alterações de código:
- Novos tipos.
- Classes aninhadas.
- A maioria das alterações nos corpos do método, como adicionar, remover e editar variáveis, expressões e instruções.
- Alterações nos corpos de expressões lambda e funções locais.
- Adição de métodos de instância e estáticos aos tipos existentes.
- Adicionar os campos estáticos aos tipos existentes.
- Adição de lambdas estáticos aos métodos existentes.
- Adição de lambdas que capturam
this
em métodos existentes que já capturaramthis
anteriormente.
Observe que quando um atributo é removido que anteriormente define o valor de um parâmetro de componente, o componente é descartado e inicializado novamente para definir o parâmetro removido de volta para seu valor padrão.
As seguintes alterações de código não têm suporte para aplicativos Blazor WebAssembly:
- Adicionando um novo
await
operador ouyield
expressão de palavra-chave. - Alterando os nomes dos parâmetros de método.
- Adicionar campos, eventos ou propriedades de instância (não-
static
).
Blazor WebAssembly A Recarga Dinâmica dá suporte às seguintes alterações de código:
- A maioria das alterações nos corpos do método, como adicionar, remover e editar variáveis, expressões e instruções.
- Alterações nos corpos de expressões lambda e funções locais.
As seguintes alterações de código não têm suporte para aplicativos Blazor WebAssembly:
- Adicionando novas lambdas ou funções locais.
- Adicionando um novo
await
operador ouyield
expressão de palavra-chave. - Alterando os nomes dos parâmetros de método.
- Alterações fora dos corpos do método.
- Adicionar campos, eventos ou propriedades de instância (não-
static
).
CLI do .NET
A Recarga Dinâmica é ativada usando o comando dotnet watch
:
dotnet watch
Para forçar o aplicativo a recompilar e reiniciar, use a combinação de teclado Ctrl+R no shell de comando.
Quando uma edição de código sem suporte é feita, chamada de edição rude, dotnet watch
pergunta se você deseja reiniciar o aplicativo:
- Yes: reinicia o aplicativo.
- Não: não reinicia o aplicativo e o mantém em execução sem as alterações aplicadas.
- Sempre: reinicia o aplicativo conforme necessário quando ocorrem edições rudes.
- Nunca: não reinicia o aplicativo e evita prompts futuros.
Para desabilitar o suporte para a Recarga Dinâmica, aprove a opção --no-hot-reload
para o comando dotnet watch
:
dotnet watch --no-hot-reload
Habilitar a Recarga Dinâmica
A seguinte configuração em Properties/launchSettings.json
desabilita a Recarga Dinâmica:
"hotReloadEnabled" : false
Recursos adicionais
Para obter mais informações, consulte os seguintes recursos na documentação do Visual Studio:
- Vídeo do YouTube Recarga Dinâmica do .NET 6 no Visual Studio 2022, VS Code e NOTEPAD?!?
- Introdução à experiência de Recarga Dinâmica do .NET para edição de código em runtime
- Gravar e depurar o código em execução com a Recarga Dinâmica no Visual Studio
- Atualizações para editores Blazor e Razor além de Recarga Dinâmica para ASP.NET
- Execução de teste com Recarga Dinâmica