Compartilhar via


Solução de problemas gerais do .NET Native

Este artigo descreve como solucionar possíveis problemas que você pode encontrar ao desenvolver aplicativos com o .NET Native.

Problemas

  • Problema: a janela de saída do build não é atualizada corretamente.

    Resolução: a janela de saída do build não será atualizada até que o build seja concluído. Os tempos de compilação podem levar vários minutos, por isso pode ocorrer um atraso para exibir as atualizações.

  • Problema: o tempo de compilação de varejo do seu aplicativo para o Arm aumentou.

    Resolução: quando você implanta um aplicativo em seu dispositivo Arm, a infraestrutura do .NET Native é invocada. Essa compilação executa um grande número de otimizações, garantindo que semânticas não estáticas como reflexão continuem a funcionar. Além disso, a parte do .NET Framework que o aplicativo usa é vinculada estaticamente para um desempenho ideal e também precisa ser compilada em código nativo. É por isso que a compilação leva mais tempo.

    No entanto, o tempo de compilação ainda está dentro de um minuto da compilação padrão para a maioria dos aplicativos em uma máquina de desenvolvimento padrão. Normalmente, apenas gerar imagens nativas para .NET Framework em um computador de desenvolvimento padrão leva vários minutos. Mesmo com todas as otimizações para melhorar o código gerado e com a inclusão do .NET Framework, os tempos de build do aplicativo normalmente são de um ou dois minutos.

    Continuamos a trabalhar para aprimorar o desempenho da compilação investigando a multi-threaded compilação e outras otimizações.

  • Problema: você não sabe se seu aplicativo foi compilado usando o .NET Native.

    Resolução: se o compilador do .NET Native for invocado, você observará tempos de build mais longos e o Gerenciador de Tarefas mostrará vários processos de componentes do .NET Native, como ILC.exe e nutc_driver.exe.

    Depois de criar seu projeto com êxito com o .NET Native, você encontrará a saída em obj\config\ arch\projectname.ilc\out. O conteúdo final do pacote nativo pode ser encontrado em bin\arch\config\AppX. O conteúdo final do pacote nativo está em \bin\arch\config\AppX se você tiver implantado o aplicativo.

  • Problema: seu aplicativo compilado com o .NET Native está lançando exceções de tempo de execução (normalmente exceções MissingMetadataException ou MissingRuntimeArtifactException) que ele não lançava quando era compilado sem o .NET Native.

    Resolução: as exceções são geradas porque o .NET Native não forneceu os metadados nem o código de implementação que normalmente fica disponível por meio de reflexão. (Para obter mais informações, consulte .NET Native e compilação.) Para eliminar a exceção, você precisa adicionar uma entrada ao arquivo de diretivas de tempo de execução (rd.xml) para que a cadeia de ferramentas do .NET Native possa disponibilizar os metadados ou o código de implementação em tempo de execução. Há duas soluções de problemas disponíveis que criarão a entrada necessária para adicionar ao seu arquivo de diretivas de runtime:

    Para obter mais informações, consulte Reflexão e .NET Native.

Confira também