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á capturaram this 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:

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á capturaram this 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:

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 ou yield 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: