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:
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.
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.
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 StaticResource arquivo .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.