Solucionar problemas de Recarga Dinâmica XAML

Aplica-se a: Versões posteriores e do Visual Studio 2019

Este guia de solução de problemas inclui instruções detalhadas que devem resolve a maioria dos problemas que impedem que Recarga Dinâmica XAML funcionem corretamente.

Há suporte para Recarga Dinâmica XAML para aplicativos WPF e UWP. Para obter detalhes sobre os requisitos de sistema operacional e ferramentas, consulte Gravar e depurar o código XAML em execução com o XAML Recarga Dinâmica.

Se Recarga Dinâmica não estiver disponível

Se você vir a mensagem Hot Reload is not available na barra de ferramentas no aplicativo durante a depuração do aplicativo, siga as instruções descritas neste artigo para resolve o problema.

Verifique se o Recarga Dinâmica XAML está habilitado

O recurso está habilitado por padrão no Visual Studio 2019 e versões posteriores. Ao começar a depurar seu aplicativo, verifique se você vê a barra de ferramentas no aplicativo, que confirma que o XAML Recarga Dinâmica está disponível.

Visual Studio 2019:

Captura de tela da barra de ferramentas 'XAML Recarga Dinâmica disponível' no Visual Studio 2019.

Visual Studio 2022:

Captura de tela da barra de ferramentas 'XAML Recarga Dinâmica disponível' no Visual Studio 2022.

Se você não vir a barra de ferramentas no aplicativo, selecione Depurar>Opções>XAML Recarga Dinâmica na barra de menus do Visual Studio. Em seguida, na caixa de diálogo Opções, verifique se a opção Habilitar Recarga Dinâmica XAML está selecionada.

Captura de tela da janela Opções de Depuração do Visual Studio, com a opção Habilitar Recarga Dinâmica XAML realçada.

Verifique se você usa Iniciar Depuração em vez de Anexar ao Processo

O XAML Recarga Dinâmica requer que a variável ENABLE_XAML_DIAGNOSTICS_SOURCE_INFO de ambiente seja definida como 1 no momento em que o aplicativo é iniciado. O Visual Studio define o valor automaticamente como parte do comando Depurar>Iniciar Depuração (ou F5). Se você quiser usar o XAML Recarga Dinâmica com o comando Anexar de Depuração>ao Processo, defina a variável de ambiente por conta própria.

Observação

Para definir uma variável de ambiente, use o botão Iniciar para pesquisar a variável de ambiente e escolha Editar as variáveis de ambiente do sistema. Na caixa de diálogo que é aberta, escolha Variáveis de Ambiente, adicione-a como uma variável de usuário e defina o valor como 1. Para limpo para cima, remova a variável quando terminar de depurar.

Verifique se as propriedades do MSBuild estão corretas

Por padrão, as informações de origem são incluídas em uma configuração de Depuração. Ele é controlado por propriedades MSBuild em seus arquivos de projeto (como *.csproj). Para WPF, a propriedade é XamlDebuggingInformation, que deve ser definida como True. Para UWP, a propriedade é DisableXbfLineInfo, que deve ser definida como False. Por exemplo:

WPF:

<XamlDebuggingInformation>True</XamlDebuggingInformation>

UWP:

<DisableXbfLineInfo>False</DisableXbfLineInfo>

Verifique se você está usando o nome de configuração de build correto

Você deve definir manualmente a propriedade MSBuild correta para dar suporte a XAML Recarga Dinâmica (consulte seção anterior) ou usar o nome de configuração de build padrão (Depuração). Se você não definir a propriedade MSBuild corretamente, um nome de configuração de build personalizado não funcionará, nem um build de Versão.

Verifique se seu programa não está em execução elevada

Não há suporte para Recarga Dinâmica XAML em aplicativos que executam elevado/executado como administrador.

Verifique se o arquivo XAML não tem erros

Se o arquivo XAML mostrar erros na Lista de Erros, o Recarga Dinâmica XAML poderá não funcionar.

Habilitar uma pesquisa mais completa para atualizar referências e estilos de recurso no Visual Studio 2022

Definir a XAML_HOT_RELOAD_ACCURACY_OVER_PERF variável de ambiente para 1 habilitar uma pesquisa mais extensa para atualizar referências e estilos de recurso em aplicativos WPF. Lembre-se de que alguns aplicativos, como aqueles que usam kits de ferramentas de terceiros, podem sofrer atrasos significativos com o XAML Recarga Dinâmica. Quando ocorre um atraso, um temporizador de progresso Recarga Dinâmica aparece na barra de Editor status.

Captura de tela do 'temporizador de progresso Recarga Dinâmica XAML' no Visual Studio 2022.

Limitações conhecidas

A seguir estão as limitações conhecidas do Recarga Dinâmica XAML. Para contornar qualquer limitação que você encontrar, basta parar o depurador e concluir a operação.

Limitação WPF UWP Observações
Eventos de fiação para controles enquanto o aplicativo está em execução Não suportado Sem suporte Confira erro: verifique se o evento falhou. No WPF, você pode fazer referência a um manipulador de eventos existente. Em aplicativos UWP, não há suporte para fazer referência a um manipulador de eventos existente.
Criando objetos de recurso em um dicionário de recursos, como na Página/Janela do aplicativo ou app.xaml Com suporte a partir do Visual Studio 2019 versão 16.2 e posterior Com suporte Exemplos:
– Adicionar um SolidColorBrush em um dicionário de recursos para uso como um StaticResource.
Observação: recursos estáticos, conversores de estilo e outros elementos gravados em um dicionário de recursos podem ser aplicados/usados ao usar o XAML Recarga Dinâmica. Não há suporte apenas para a criação do recurso.
- Alterando a propriedade do dicionário de Source recursos.
Adicionando novos controles, classes, janelas ou outros arquivos ao seu projeto enquanto o aplicativo está em execução Não Suportado Não Suportado Nenhum
Gerenciando pacotes NuGet (adição/remoção/atualização de pacotes) Não Suportado Não Suportado Nenhum
Alteração da associação de dados que usa a extensão de marcação {x:Bind} N/D Com suporte a partir do Visual Studio 2019 Isso requer Windows 10 versão 1809 (build 10.0.17763) e posterior. Não há suporte no Visual Studio 2017 ou em versões anteriores.
Alterando as diretivas x:Uid N/D Não Suportado Nenhum
Usando vários processos Com suporte Com suporte Com suporte no Visual Studio 2019 versão 16.6 e posterior.
Editando estilos em temas\generic.xaml Não suportado Sem suporte XAML Recarga Dinâmica cria novos estilos; os originais são selados. As plataformas armazenam estilos de cache de generic.xaml depois de serem aplicadas a controles, o que as torna inacessíveis para substituição.

Mensagens de erro

Você pode se deparar com os seguintes erros ao usar o Recarga Dinâmica XAML.

Mensagem de erro Descrição
Garantir falha no evento O erro indica que você está tentando transferir um evento para um de seus controles, que não tem suporte enquanto seu aplicativo está em execução.
Essa alteração não tem suporte no XAML Recarga Dinâmica e não será aplicada durante a sessão de depuração. O erro indica que a alteração que você está tentando não é suportada pelo XAML Recarga Dinâmica. Interrompa a sessão de depuração, faça a alteração e reinicie a sessão de depuração.

Se você encontrar um cenário sem suporte que gostaria de ver com suporte, avise-nos usando nossa opção Sugerir um recurso .