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