Recarga Dinâmica XAML paraXamarin.Forms

O XAML Recarga Dinâmica se conecta ao fluxo de trabalho existente para aumentar sua produtividade e economizar tempo. Sem Recarga Dinâmica XAML, você precisa criar e implantar seu aplicativo sempre que quiser ver uma alteração XAML. Com Recarga Dinâmica, quando você salva o arquivo XAML, as alterações são refletidas ao vivo em seu aplicativo em execução. Além disso, o estado de navegação e os dados serão mantidos, permitindo que você itere rapidamente na interface do usuário sem perder seu lugar no aplicativo. Portanto, com o XAML Recarga Dinâmica, você gastará menos tempo recompilando e implantando seus aplicativos para validar as alterações na interface do usuário.

Observação

Se você estiver escrevendo um aplicativo UWP ou WPF nativo, não usando Xamarin.Forms, consulte XAML Recarga Dinâmica para UWP e WPF.

Requisitos de sistema

IDE/Framework Versão mínima necessária
Visual Studio 2019 16.9 somente para o modo de alterações, 16.4 para o modo de página inteira
Visual Studio 2019 para Mac 8.9 somente para o modo de alterações, 8.4 para modo de página inteira
Xamarin.Forms 5.0.0.2012 somente para o modo de alterações; 4.1 para o modo de página inteira

Habilitar Recarga Dinâmica XAML paraXamarin.Forms

Se você estiver começando com um modelo, o Recarga Dinâmica XAML estará ativado por padrão e o projeto estará configurado para funcionar sem configuração adicional. Depure seu aplicativo Android, iOS ou UWP em um emulador ou dispositivo físico e altere o XAML para disparar um Recarga Dinâmica XAML.

Se você estiver trabalhando em uma solução existenteXamarin.Forms, nenhuma instalação adicional será necessária para usar Recarga Dinâmica XAML, mas talvez seja necessário dobrar marcar sua configuração para garantir a melhor experiência. Primeiro, habilite-o nas configurações do IDE:

  • No Windows, marcar caixa de seleção Habilitar Recarga Dinâmica XAML (e as plataformas necessárias) em Ferramentas>Opções>de Depuração>Recarga Dinâmica.
    • Em versões anteriores do Visual Studio 2019, a caixa de seleção está em Ferramentas>Opções>Xamarin>Recarga Dinâmica.
  • No Mac, marcar caixa de seleção Habilitar Recarga Dinâmica Xamarin emFerramentas de Preferências> do Visual Studio> paraRecarga Dinâmica XAML doXamarin>.
    • Em versões anteriores do Visual Studio para Mac, a caixa de seleção está emProjetos de Preferências>> do Visual Studio>Recarga Dinâmica.

Em seguida, nas configurações de build do Android e do iOS, marcar que o Vinculador está definido como "Não Vincular" ou "Vincular Nenhum". Para usar o XAML Recarga Dinâmica com um dispositivo iOS físico, você também precisa marcar Habilitar o interpretador Mono (Visual Studio 16.4 e superior) ou adicionar --interprete aos seus argumentos mtouch adicionais (Visual Studio 16.3 e inferior).

Você pode usar o fluxograma a seguir para marcar a configuração do projeto existente para uso com Recarga Dinâmica XAML:

Fluxograma de instalação do

modos de Recarga Dinâmica

O Recarga Dinâmica XAML pode funcionar em dois modos diferentes: o modo somente de alterações mais recente e o modo de página inteira mais antigo.

No Visual Studio 16.9 e Visual Studio para Mac 8.9, o comportamento padrão é que o modo somente de alterações seja usado para todos os aplicativos que usam Xamarin.Forms 5.0 ou mais recente. Para versões mais antigas do , o modo de Xamarin.Formspágina inteira é usado. No entanto, você pode forçar o uso do modo de página inteira para todos os aplicativos nas configurações do IDE do Recarga Dinâmica (Depuração> deOpções> de Ferramentas>Recarga Dinâmica nasFerramentas de Preferências> do Windows ou do Visual Studio>para xamarin>XAML Recarga Dinâmica no Mac).

Altera apenas o modo analisa o XAML para ver exatamente o que mudou quando você faz uma edição e envia apenas essas alterações para o aplicativo em execução. Essa é a mesma tecnologia usada para Recarga Dinâmica WPF e UWP. Ele preserva o estado da interface do usuário, pois não recria a interface do usuário para a página inteira, apenas atualizando propriedades alteradas em controles afetados por edições. O modo somente alterações também permite o uso da Árvore Visual Dinâmica.

Por padrão, com o modo somente de alterações, você não precisa salvar o arquivo para ver as alterações – as atualizações são aplicadas imediatamente, conforme você digita. No entanto, você pode alterar esse comportamento para atualizar somente no arquivo salvo. Isso pode ser feito marcando a caixa de seleção Aplicar Recarga Dinâmica XAML no documento salvar (atualmente disponível apenas no Windows) nas configurações do IDE do Recarga Dinâmica. Às vezes, apenas a atualização no salvamento de documentos poderá ser útil se você fizer atualizações XAML maiores e não desejar que elas sejam exibidas até que elas sejam concluídas.

O modo de página inteira envia o arquivo XAML completo para o aplicativo em execução depois que você faz edições e salva. O aplicativo em execução recarrega a página, recriando seus controles . Você verá a atualização da interface do usuário.

O modo somente alterações é o futuro do Recarga Dinâmica e é recomendável usá-lo sempre que possível. Ele é rápido, preserva o estado da interface do usuário e dá suporte à Árvore Visual Dinâmica. O modo de página inteira ainda é fornecido para aplicativos que ainda não foram atualizados para a Xamarin.Forms versão 5.0.

Observação

Você precisará reiniciar a sessão de depuração ao alternar os modos.

Erros XAML

Modo somente alterações: se você fizer uma alteração que o analisador XAML Recarga Dinâmica vê como inválido, ele mostrará o erro sublinhado no editor e o incluirá na janela de erros. Esses erros Recarga Dinâmica têm um código de erro começando com "XHR" (para Recarga Dinâmica XAML). Se houver erros desse tipo na página, Recarga Dinâmica não aplicará alterações, mesmo que sejam feitas em outras partes da página. Corrija todos os erros de Recarga Dinâmica para começar a trabalhar novamente para a página.

Modo de página inteira: se você fizer uma alteração que Recarga Dinâmica XAML não puder recarregar, ele mostrará o erro sublinhado no editor e o incluirá na janela de erros. Essas alterações, conhecidas como edições rudes, incluem mistyping seu XAML ou a conexão de um controle para um manipulador de eventos que não existe. Mesmo com uma edição rude, você pode continuar a recarregar sem reiniciar o aplicativo – faça outra alteração em outro lugar no arquivo XAML e pressione salvar. A edição rude não será recarregada, mas suas outras alterações continuarão a ser aplicadas.

Recarregar em várias plataformas ao mesmo tempo

O XAML Recarga Dinâmica dá suporte à depuração simultânea no Visual Studio e Visual Studio para Mac. Você pode implantar um destino android e iOS ao mesmo tempo para ver suas alterações refletidas em ambas as plataformas ao mesmo tempo. Para depurar em várias plataformas, confira:

Limitações conhecidas

  • Xamarin.Forms No momento, não há suporte para destinos além do Android, iOS e UWP (por exemplo, macOS).
  • O uso de [XamlCompilation(XamlCompilationOptions.Skip)], desabilitando a compilação XAML, não tem suporte e pode causar problemas com a Árvore Visual Dinâmica.
  • Não é possível adicionar, remover ou renomear arquivos ou pacotes NuGet durante uma sessão de Recarga Dinâmica XAML. Se você adicionar ou remover um arquivo ou pacote NuGet, recompile e reimplante seu aplicativo para continuar usando Recarga Dinâmica XAML.
  • Defina seu vinculador como Não Vincular ou Vincular Nenhum para obter a melhor experiência. A configuração do SDK do Link funciona apenas na maioria das vezes, mas pode falhar em determinados casos. As configurações do vinculador podem ser encontradas nas opções de build do Android e do iOS.
  • A depuração em um iPhone físico requer que o interpretador use Recarga Dinâmica XAML. Para fazer isso, abra as configurações do projeto, selecione a guia Build do iOS e verifique se Habilitar a configuração do interpretador Mono está habilitada. Talvez seja necessário alterar a opção Plataforma na parte superior da página de propriedades para iPhone.
  • O Recarga Dinâmica XAML não pode recarregar o código C#, incluindo manipuladores de eventos, controles personalizados, code-behind de página e classes adicionais.

Solução de problemas

  • Abra a saída de Recarga Dinâmica XAML para ver status mensagens, o que pode ajudar na solução de problemas:
    • Windows: abra Saída com Exibir>Saída e selecione Xamarin Recarga Dinâmica em Mostrar saída de: na parte superior
    • Mac: focalize Recarga Dinâmica XAML na barra de status para mostrar esse painel
  • Se Recarga Dinâmica XAML falhar ao inicializar:
    • Atualize sua Xamarin.Forms versão.
    • Verifique se você está na versão mais recente do IDE.
    • Defina as configurações do Vinculador do Android ou do iOS como Não Vincular nas configurações de build do projeto.
  • Se nada acontecer ao salvar o arquivo XAML, verifique se o Recarga Dinâmica XAML está habilitado no IDE.
  • Se você estiver depurando em um iPhone físico e seu aplicativo ficar sem resposta, marcar que o interpretador esteja habilitado. Para ativá-lo, marcar Habilitar o interpretador Mono (Visual Studio 16.4/8.4 ou para cima) ou adicionar --interprete ao campo Argumentos mtouch adicionais (Visual Studio 16.3/8.3 e anterior) em suas configurações de Build do iOS.

Para relatar um bug, use a Ajuda para>enviar comentários>relatar um problema no Windows e ajudar a>relatar um problema no Mac.