Compartilhar via


Solucionar problemas de Recarga Dinâmica XAML

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

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

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

Se o Recarregamento Dinâmico não estiver disponível

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

Verificar se a Recarga Dinâmica de XAML está habilitada

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

Visual Studio 2019:

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

Visual Studio 2022:

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

Se você não vir a barra de ferramentas no aplicativo, selecione Recarga Dinâmica XAML Opções>de Depuração>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 de XAML está selecionada.

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

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

A Recarga Dinâmica XAML 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 a Recarga Dinâmica de XAML com o comando Depurar>Anexar 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 como uma variável de usuário e defina o valor como 1. Para limpar, remova a variável quando terminar de depurar.

Verificar 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 pelas propriedades do MSBuild em seus arquivos de projeto (como *.csproj). Para o WPF, a propriedade é XamlDebuggingInformation, que deve ser definida como True. Para o 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 correto da configuração de build

Você deve definir manualmente a propriedade correta do MSBuild para dar suporte à Recarga Dinâmica de XAML (consulte a seção anterior) ou usar o nome de configuração de build padrão (Depurar). 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.

Certifique-se de que seu programa não esteja sendo executado com privilégios elevados

Não há suporte para Recarga Dinâmica XAML em aplicativos que são executados com privilégios elevados/executados como administrador.

Verifique se o arquivo XAML não tem erros

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

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

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

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

Limitações conhecidas

Veja a seguir limitações conhecidas da Recarga Dinâmica de XAML. Para contornar qualquer limitação encontrada, basta parar o depurador e concluir a operação.

Limitação WPF UWP Observações
Conectar eventos a controles enquanto o aplicativo está em execução Sem suporte Sem suporte Confira o erro: Verificar 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 referenciar um manipulador de eventos existente.
Criando objetos de recurso em um dicionário de recursos, como na Página/Janela ou App.xaml do seu aplicativo Com suporte a partir do Visual Studio 2019 versão 16.2 e posterior Com suporte Exemplos:
- Adicionando a SolidColorBrush em um dicionário de recursos para uso como um StaticResourcearquivo .
Observação: recursos estáticos, conversores de estilo e outros elementos gravados em um dicionário de recursos podem ser aplicados/usados ao usar a Recarga Dinâmica XAML. Somente a criação do recurso não tem suporte.
– Alterando a propriedade Source do dicionário de recursos.
Adicionar novos controles, classes, janelas ou outros arquivos ao projeto enquanto o aplicativo está em execução Sem suporte Sem suporte Nenhum
Gerenciando pacotes NuGet (adicionando/removendo/atualizando pacotes) Sem suporte Sem suporte Nenhum
Alterando a 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 o 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 diretivas x:Uid N/A Sem suporte Nenhum
Usando vários processos Com suporte Com suporte Com suporte no Visual Studio 2019 versão 16.6 e posteriores.
Editando estilos em themes\generic.xaml Sem suporte Sem suporte A Recarga Dinâmica de XAML cria novos estilos; os originais são selados. As plataformas armazenam em cache os estilos de generic.xaml depois de serem aplicados aos controles, o que os torna inacessíveis para substituição.

Mensagens de erro

Você pode encontrar os erros a seguir ao usar a Recarga Dinâmica de XAML.

Mensagem de erro Descrição
Verificar se o evento falhou O erro indica que você está tentando conectar um evento a um de seus controles, o que não tem suporte enquanto o aplicativo está em execução.
Esta alteração não é compatível com a Recarga Dinâmica de XAML 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 tem suporte na Recarga Dinâmica de XAML. 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 que tivesse suporte, informe-nos usando nossa opção Sugerir um recurso.