Optimieren Ihrer .NET-Desktop-Apps mit nativen ImagesOptimize your .NET desktop apps with native images

Sie können die Startzeit Ihrer .NET Framework-Anwendung verbessern, indem Sie Ihre Binärdateien vorkompilieren.You can improve the startup time of your .NET Framework application by pre-compiling your binaries. Sie können diese Technologie für große Anwendungen verwenden, die Sie packen und über den Microsoft Store verteilen.You can use this technology on large applications that you package and distribute through the Microsoft Store. In einigen Fällen haben wir eine Verbesserung der Leistung von 20 % festgestellt.In some cases, we've observed a 20% performance improvement. Weitere Informationen zu dieser Technologie finden Sie in der Technischen Übersicht.You can learn more about this technology in the technical overview.

Wir haben den Compiler für native Images als NuGet-Paket veröffentlicht.We've released the native image compiler as a NuGet package. 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.You can apply this package to any .NET Framework application that targets the .NET Framework version 4.6.2 or later. 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.This package adds a post build step that includes a native payload to all the binaries used by your application. 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.This optimized payload will be loaded when the application runs in .NET 4.7.2 and above while previous versions will still load the MSIL code.

.NET Framework 4.7.2 ist im Windows 10 April 2018 Update enthalten.The .NET framework 4.7.2 is included in the Windows 10 April 2018 update. 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.You can also install this version of the .NET Framework on PCs that run Windows 7+ and Windows Server 2008 R2+.

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.If you want to produce native images for your application packaged by the Windows Application Packaging project, make sure to set the Target Platform Minimum version of the project to the Windows Anniversary Update.

Erstellen von nativen ImagesHow to produce native images

Befolgen Sie diese Anweisungen, um Ihre Projekte zu konfigurieren.Follow these instructions to configure your projects.

  1. Konfigurieren des Zielframeworks als 4.6.2 oder höherConfigure the target framework as 4.6.2 or above

  2. Konfigurieren der Zielplattform als x86 oder x64Configure the target platform as x86 or x64

  3. Hinzufügen der NuGet-PaketeAdd the NuGet packages.

  4. Erstellen eines ReleasebuildsCreate a Release Build.

Konfigurieren des Zielframeworks als 4.6.2 oder höherConfigure the target framework as 4.6.2 or above

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.To configure your project to target .NET Framework 4.6.2 you will need the .NET Framework 4.6.2 development tools or newer. Diese Tools sind über den Visual Studio-Installer als optionale Komponenten unter der .NET-Desktopentwicklungs-Workload verfügbar:These tools are available through the Visual Studio installer as optional components under the .NET desktop development workload:

Installieren der .NET 4.6.2-Entwicklungstools

Alternativ können Sie hier die .NET-Entwicklerpakete abrufen: https://www.microsoft.com/net/download/visual-studio-sdksAlternatively, you can get the .NET developer packs from: https://www.microsoft.com/net/download/visual-studio-sdks

Konfigurieren der Zielplattform als x86 oder x64Configure the target platform as x86 or x64

Der Compiler für native Images optimiert den Code für eine bestimmte Plattform.The native image compiler optimizes the code for a given platform. Um ihn zu verwenden, müssen Sie Ihre Anwendung so konfigurieren, dass sie auf eine bestimmte Plattform wie x86 oder x64 abzielt.To use it, you need to configure your application to target one specific platform such as x86 or x64.

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.If you have multiple projects in your solution, only the entry point project (most likely the project that produces an executable file) has to be compiled as x86 or x64. 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.Additional binaries referenced from the main project will be processed with the architecture specified in the main project, even if they are compiled as AnyCPU.

So konfigurieren Sie Ihr ProjektTo configure your project:

  1. Klicken Sie mit der rechten Maustaste auf Ihre Projektmappe, und wählen Sie dann Configuration Manager aus.Right-click your solution, and then select Configuration Manager.

  2. Wählen Sie <Neu...> im Dropdownmenü Plattform neben dem Namen des Projekts aus, das Ihre ausführbare Datei erstellt.Select <New ..> in the Platform dropdown menu beside the name of the project that produces your executable file.

  3. Vergewissern Sie sich im Dialogfeld Neue Projektplattform, dass Dropdownliste Einstellungen kopieren von auf Beliebige CPU festgelegt ist.In the New Project Platform dialog box, make sure that the Copy Settings from dropdown list is set to Any CPU.

Konfigurieren von x86

Wiederholen Sie diesen Schritt für Release/x64, wenn Sie x64-Binärdateien erzeugen möchten.Repeat this step for Release/x64 if you want produce x64 binaries.

Wichtig

Die AnyCPU-Konfiguration wird vom Compiler für native Images nicht unterstützt.AnyCPU configuration is not supported by the native image compiler.

Hinzufügen der NuGet-PaketeAdd the NuGet packages

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.The native image compiler is provided as a NuGet package that you need to add to the Visual Studio project that produces the executable file. Dies ist in der Regel Ihr Windows Forms- oder WPF-Projekt.This is typically your Windows Forms or WPF project. Verwenden Sie hierfür diesen PowerShell-Befehl.Use this PowerShell command to do that.

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

Erstellen eines ReleasebuildsCreate a Release Build

Das NuGet-Paket konfiguriert das Projekt so, dass es ein zusätzliches Tool für Releasebuilds ausführt.The NuGet package configures the project to run an additional tool for release builds. Dieses Tool fügt denselben Binärdateien den nativen Code hinzu.This tool adds the native code to the same binaries. 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:To verify that the tool has processed the binaries you can review the build output to make sure it includes a message such as this one:

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.Native image compilation can be triggered on non-release builds by setting the property NgenR2R to true in the project file.

Häufig gestellte FragenFAQ

F. Funktionieren die neuen Binärdateien auf Computern ohne .NET Framework 4.7.2?Q. Do the new binaries work on machines without .NET Framework 4.7.2?

A.A. Optimierte Binärdateien profitieren von den Verbesserungen, wenn Sie mit .NET Framework 4.7.2 ausgeführt werden.Optimized binaries will benefit from the improvements when running with .NET Framework 4.7.2. Clients, auf denen frühere Versionen von .NET Framework ausgeführt werden, laden den nicht optimierten MSIL-Code aus der Binärdatei.Clients that run previous .NET framework versions will load the non-optimized MSIL code from the binary.

F. Wie kann ich Feedback senden oder Probleme melden?Q. How can I provide feedback or report issues?

A.A. Melden Sie ein Problem über das Feedbacktool in Visual Studio 2017.Report an issue by using the Feedback tool in Visual Studio 2017. Weitere Informationen.More information.

F. Wie wirkt sich das Hinzufügen des nativen Images zu vorhandenen Binärdateien aus?Q. What’s the impact of adding the native image to existing binaries?

A.A. Die optimierten Binärdateien enthalten den verwalteten und nativen Code, wodurch die endgültigen Dateien größer werden.The optimized binaries contain the managed and native code, making the final files greater.

F. Kann ich mit dieser Technologie Binärdateien freigeben?Q. Can I release binaries using this technology?

A.A. Diese Version enthält eine „Go Live“-Lizenz, die Sie heute verwenden können.This version includes a Go Live license that you can use today.