Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
É importante realizar testes nas compilações de lançamento do aplicativo da Plataforma Universal do Windows nas suas plataformas-alvo porque as configurações de depuração e de lançamento são completamente diferentes. Por padrão, a configuração de depuração usa o runtime do .NET Core para compilar seu aplicativo, mas a configuração de versão usa o .NET Native para compilar seu aplicativo para código nativo.
Importante
Para obter informações sobre como lidar com o
Compilações de depuração e versão
Quando a build de depuração é executada no runtime do .NET Core, ela não foi compilada para código nativo. Isso torna todos os serviços normalmente fornecidos pelo runtime disponíveis para seu aplicativo.
Por outro lado, o build de versão é compilado para código nativo para suas plataformas de destino, remove a maioria das dependências em runtimes e bibliotecas externas e otimiza fortemente o código para o máximo de desempenho.
Quando você depura builds de liberação compilados usando o .NET Native:
Use o mecanismo de depuração .NET Native, que é diferente das ferramentas normais de depuração do .NET.
O tamanho do executável é reduzido o máximo possível. Uma das maneiras pelas quais o .NET Native reduz o tamanho de um executável é cortar significativamente as mensagens de exceção de runtime, um tópico discutido com mais detalhes na seção mensagens de exceção do Runtime .
Seu código é altamente otimizado. Isso significa que o sublinhado é usado sempre que possível. (A incorporação move o código de rotinas externas para a rotina de chamada.) O fato de o .NET Native fornecer um runtime especializado e implementar o inlining agressivo afeta a pilha de chamadas exibida durante a depuração. Para obter mais informações, consulte a seção de pilha de chamadas
Runtime.
Observação
Você pode controlar se os builds de depuração e de release são compilados com a cadeia de ferramentas do .NET Native marcando ou desmarcando a caixa Compilar com a cadeia de ferramentas do .NET Native. No entanto, a Microsoft Store sempre compilará a versão de produção do seu aplicativo com a cadeia de ferramentas .NET Native.
Mensagens de exceção de runtime
Para minimizar o tamanho executável do aplicativo, o .NET Native não inclui o texto completo das mensagens de exceção. Como resultado, as exceções de tempo de execução lançadas em compilações de lançamento podem não exibir o texto completo das mensagens de exceção. Em vez disso, o texto pode consistir em uma subcadeia de caracteres junto com um link a ser seguido para obter mais informações. Por exemplo, as informações de exceção podem aparecer como:
Exception thrown: '$16_System.AggregateException' in Unknown Module.
Additional information: AggregateException_ctor_DefaultMessage
If there is a handler for this exception, the program may be safely continued.
Se você precisar da mensagem de exceção completa, execute a versão de depuração. Por exemplo, as informações de exceção anteriores do build de release podem aparecer da seguinte maneira no build de depuração:
Exception thrown: 'System.AggregateException' in NativeApp.exe.
Additional information: Value does not fall within the expected range.
Pilha de chamadas de runtime
Devido ao inlining e outras otimizações, a pilha de chamadas exibida por um aplicativo compilado pela cadeia de ferramentas .NET Native pode não ajudá-lo a identificar claramente o caminho para uma exceção de tempo de execução.
Para obter o stack completo, execute a versão de depuração.