Optimieren Ihrer .NET-Desktop-Apps mit nativen Images

Sie können die Startzeit Ihrer .NET Framework-Anwendung verbessern, indem Sie Ihre Binärdateien vorkompilieren. Sie können diese Technologie für große Anwendungen verwenden, die Sie packen und über den Microsoft Store verteilen. In einigen Fällen haben wir eine Verbesserung der Leistung von 20 % festgestellt. Weitere Informationen zu dieser Technologie finden Sie in der Technischen Übersicht.

Wir haben den Compiler für native Images als NuGet-Paket veröffentlicht. Sie können dieses Paket auf alle .NET Framework-Anwendungen anwenden, die für .NET Framework Version 4.6.2 oder höher gedacht sind. Dieses Paket fügt einen Schritt nach der Builderstellung hinzu, der eine native Nutzlast für alle Binärdateien enthält, die von Ihrer Anwendung verwendet werden. Diese optimierte Nutzlast wird geladen, wenn die Anwendung in .NET 4.7.2 und höher ausgeführt wird, während niedrigere Versionen weiterhin den MSIL-Code laden.

.NET Framework 4.7.2 ist im Windows 10 April 2018 Update enthalten. Sie können diese Version von .NET Framework auch auf PCs installieren, auf denen Windows 7 und höher oder Windows Server 2008 R2 und höher ausgeführt wird.

Wichtig

Wenn Sie native Images für Ihre Anwendung erstellen möchten, die vom Paketerstellungsprojekt für Windows-Anwendungen verpackt wurde, stellen Sie sicher, dass Sie die Mindestversion für die Zielplattform des Projekts auf das Windows Anniversary Update festlegen.

Erstellen von nativen Images

Befolgen Sie diese Anweisungen, um Ihre Projekte zu konfigurieren.

  1. Konfigurieren des Zielframeworks als 4.6.2 oder höher

  2. Konfigurieren der Zielplattform als x86 oder x64

  3. Hinzufügen der NuGet-Pakete

  4. Erstellen eines Releasebuilds

Konfigurieren des Zielframeworks als 4.6.2 oder höher

Um Ihr Projekt für das .NET Framework 4.6.2 als Ziel zu konfigurieren, benötigen Sie die .NET Framework 4.6.2-Entwicklungstools oder eine neuere Version. Diese Tools sind über den Visual Studio-Installer als optionale Komponenten unter der .NET-Desktopentwicklungs-Workload verfügbar:

Installieren der .NET 4.6.2-Entwicklungstools

Alternativ können Sie hier die .NET-Entwicklerpakete abrufen: https://www.microsoft.com/net/download/visual-studio-sdks

Konfigurieren der Zielplattform als x86 oder x64

Der Compiler für native Images optimiert den Code für eine bestimmte Plattform. Um ihn zu verwenden, müssen Sie Ihre Anwendung so konfigurieren, dass sie auf eine bestimmte Plattform wie x86 oder x64 abzielt.

Wenn Ihre Projektmappe mehrere Projekte enthält, muss nur das Einstiegspunktprojekt (höchstwahrscheinlich das Projekt, das eine ausführbare Datei erzeugt) als x86 oder x64 kompiliert werden. Zusätzliche Binärdateien, auf die aus dem Hauptprojekt verwiesen wird, werden mit der im Hauptprojekt angegebenen Architektur verarbeitet, auch wenn sie als „AnyCPU“ kompiliert werden.

So konfigurieren Sie Ihr Projekt

  1. Klicken Sie mit der rechten Maustaste auf Ihre Projektmappe, und wählen Sie dann Configuration Manager aus.

  2. Wählen Sie Neu...> im Dropdownmenü > neben dem Namen des Projekts aus, das Ihre ausführbare Datei erstellt.

  3. Vergewissern Sie sich im Dialogfeld Neue Projektplattform, dass Dropdownliste Einstellungen kopieren von auf Beliebige CPU festgelegt ist.

Konfigurieren von x86

Wiederholen Sie diesen Schritt für Release/x64, wenn Sie x64-Binärdateien erzeugen möchten.

Wichtig

Die AnyCPU-Konfiguration wird vom Compiler für native Images nicht unterstützt.

Hinzufügen der NuGet-Pakete

Der Compiler für native Images wird als NuGet-Paket bereitgestellt, das Sie dem Visual Studio-Projekt hinzufügen müssen, das die ausführbare Datei erstellt. Dies ist in der Regel Ihr Windows Forms- oder WPF-Projekt. Verwenden Sie hierfür diesen PowerShell-Befehl.

PM> Install-Package Microsoft.DotNet.Framework.NativeImageCompiler -Version 1.0.0

Erstellen eines Versionsbuilds

Das NuGet-Paket konfiguriert das Projekt so, dass es ein zusätzliches Tool für Releasebuilds ausführt. Dieses Tool fügt denselben Binärdateien den nativen Code hinzu. Um zu überprüfen, ob das Tool die Binärdateien verarbeitet hat, können Sie die Buildausgabe überprüfen, um sicherzustellen, dass sie eine Meldung wie diese enthält:

Native image obj\x86\Release\\R2R\DesktopApp1.exe generated successfully.

Die Kompilierung nativer Images kann bei Nicht-Releasebuilds ausgelöst werden, indem Sie die Eigenschaft NgenR2R in der Projektdatei auf true festlegen.

Häufig gestellte Fragen

Q. Funktionieren die neuen Binärdateien auf Computern ohne .NET Framework 4.7.2?

A. Optimierte Binärdateien profitieren von den Verbesserungen, wenn Sie mit .NET Framework 4.7.2 ausgeführt werden. Clients, auf denen frühere Versionen von .NET Framework ausgeführt werden, laden den nicht optimierten MSIL-Code aus der Binärdatei.

Q. Wie kann ich Feedback senden oder Probleme melden?

A. Melden Sie ein Problem über das Feedbacktool in Visual Studio 2017. Weitere Informationen.

Q. Wie wirkt sich das Hinzufügen des nativen Images zu vorhandenen Binärdateien aus?

A. Die optimierten Binärdateien enthalten den verwalteten und nativen Code, wodurch die endgültigen Dateien größer werden.

Q. Kann ich mit dieser Technologie Binärdateien freigeben?

A. Diese Version enthält eine „Go Live“-Lizenz, die Sie heute verwenden können.