Partilhar via


Compilar aplicações com .NET Native

Importante

Modernize a sua aplicação UWP com .NET e AOT Nativo: Se está a desenvolver uma nova aplicação UWP ou quiser modernizar uma aplicação UWP existente, recomendamos usar o suporte UWP para as versões mais recentes do .NET com AOT Nativo em vez de .NET Nativo. O suporte UWP para .NET moderno está agora disponível de forma geral e é o tipo de projeto default para aplicações UWP em C# em Visual Studio 2026. Isto proporciona acesso às funcionalidades mais recentes de .NET e C#, ferramentas melhoradas e suporte para depuração, e tempos de compilação mais rápidos. .NET Native continuará a receber correções de segurança e fiabilidade, mas não receberá novas atualizações de funcionalidades.

.NET Native é uma tecnologia de pré-compilação para construir e implementar aplicações UWP. .NET Native está incluído no Visual Studio 2015 e versões posteriores. Compila automaticamente a versão de lançamento das aplicações UWP escritas em código gerido (C# ou Visual Basic) para código nativo.

Normalmente, as aplicações .NET são compiladas para linguagem intermédia (IL). Em tempo de execução, o compilador just-in-time (JIT) traduz o IL para código nativo. Em contraste, o .NET Native compila aplicações UWP diretamente para código nativo. Para os desenvolvedores, isso significa:

  • Seus aplicativos apresentam o desempenho do código nativo. Normalmente, o desempenho será superior ao código que é primeiro compilado para IL e, em seguida, compilado para código nativo pelo compilador JIT.

  • Podes continuar a programar em C# ou Visual Basic.

  • Pode continuar a tirar partido dos recursos fornecidos pelo .NET Framework, incluindo a sua biblioteca de classes, gestão automática de memória e recolha de lixo, e gestão de exceções.

Para os utilizadores das suas aplicações, o .NET Native oferece estas vantagens:

  • Tempos de execução mais rápidos para a maioria dos aplicativos e cenários.

  • Tempos de arranque mais rápidos para a maioria das aplicações e cenários.

  • Baixos custos de implantação e atualização.

  • Uso otimizado da memória do aplicativo.

Mas o .NET Native envolve mais do que uma compilação para código nativo. Transforma a forma como as aplicações do .NET Framework são construídas e executadas. Em especial:

  • Durante a pré-compilação, as partes necessárias do .NET Framework são ligadas estaticamente à sua aplicação. Isto permite que a aplicação funcione com bibliotecas locais de aplicação do .NET Framework, e o compilador realize análises globais para garantir vitórias de desempenho. Como resultado, as aplicações lançam-se consistentemente mais rápido mesmo após atualizações do .NET Framework.

  • O runtime nativo .NET está otimizado para pré-compilação estática e, na grande maioria dos casos, oferece desempenho superior. Ao mesmo tempo, mantém os principais recursos de reflexão que os desenvolvedores consideram tão produtivos.

  • .NET Native utiliza o mesmo backend que o compilador C++, que está otimizado para cenários de pré-compilação estática.

.NET Native consegue trazer os benefícios de desempenho do C++ aos programadores de código gerido porque utiliza as mesmas ou semelhantes ferramentas do C++ por baixo, como mostrado nesta tabela.

Componente .NET Nativo C++
Bibliotecas .NET Framework + Windows Runtime Win32 + Windows Runtime
Compilador Compilador de otimização UTC Compilador de otimização UTC
Implantado Binários prontos para execução Binários prontos para execução (ASM)
Tempo de execução MRT.dll (Tempo de execução CLR mínimo) CRT.dll (Tempo de Execução C)

Para aplicativos UWP, deve-se carregar binários de compilação de código nativo do .NET em pacotes de aplicação (arquivos .msix ou .appx) para a Microsoft Store.