Freigeben über


Kompilieren von Apps mit .NET Native

.NET Native ist eine Vorkompilierungstechnologie zum Erstellen und Bereitstellen von UWP-Apps. .NET Native ist in Visual Studio 2015 und höheren Versionen enthalten. Es kompiliert automatisch die Release-Version von UWP-Apps, die in verwaltetem Code (C# oder Visual Basic) geschrieben sind, in nativen Code.

In der Regel werden .NET-Apps in Zwischensprache (IL) kompiliert. Zur Laufzeit übersetzt der JUST-in-Time-Compiler (JIT) die IL in systemeigenen Code. Im Gegensatz dazu kompiliert .NET Native UWP-Anwendungen direkt in nativen Code. Für Entwickler bedeutet dies Folgendes:

  • Ihre Apps bieten die Leistung von nativen Code. In der Regel ist die Leistung besser als bei Code, der zuerst in IL kompiliert und dann vom JIT-Compiler in nativen Code kompiliert wird.

  • Sie können weiterhin in C# oder Visual Basic programmieren.

  • Sie können weiterhin die von .NET Framework bereitgestellten Ressourcen nutzen, einschließlich der Klassenbibliothek, der automatischen Speicherverwaltung und der Garbage Collection sowie der Ausnahmebehandlung.

Für Benutzer Ihrer Apps bietet .NET Native folgende Vorteile:

  • Schnellere Ausführungszeiten für die meisten Apps und Szenarien.

  • Schnellere Startzeiten für die meisten Apps und Szenarien.

  • Niedrige Bereitstellungs- und Updatekosten.

  • Optimierte App-Speicherauslastung.

.NET Native umfasst jedoch mehr als nur eine Kompilierung in nativen Code. Es transformiert die Art und Weise, wie .NET Framework-Apps erstellt und ausgeführt werden. Im Besonderen:

  • Während der Vorkompilierung werden erforderliche Teile von .NET Framework statisch mit Ihrer App verknüpft. Dadurch kann die App mit app-lokalen Bibliotheken von .NET Framework ausgeführt werden, und der Compiler führt globale Analysen durch, um Leistungsgewinne zu erzielen. Daher starten Apps auch nach .NET Framework-Updates konsistent schneller.

  • Die .NET Native-Runtime ist für statische Vorkompilierung optimiert und bietet in den meisten Fällen eine überlegene Leistung. Gleichzeitig behält sie die Kernreflexionsmerkmale bei, die Entwickler als so produktiv empfinden.

  • .NET Native verwendet dasselbe Back-End wie der C++-Compiler, der für statische Vorkompilierungsszenarien optimiert ist.

.NET Native ist in der Lage, die Leistungsvorteile von C++ für Entwickler von verwaltetem Code zu nutzen, da sie dieselben oder ähnliche Tools wie C++ unter der Haube verwendet, wie in dieser Tabelle dargestellt.

Komponente .NET Native C++
Bibliotheken .NET Framework + Windows-Runtime Win32 + Windows-Runtime
Compiler UTC-Optimierungscompiler UTC-Optimierungscompiler
Eingesetzt Lauffertige Binärdateien Lauffertige Binärdateien (ASM)
Laufzeit MRT.dll (Minimale CLR-Laufzeitumgebung) CRT.dll (C-Runtime)

Für UWP-Apps laden Sie binärdateien für die .NET Native Code-Kompilierung in App-Paketen (MSIX- oder .appx-Dateien) in den Microsoft Store hoch.