Optimiser vos applications de bureau .NET avec des images natives

Vous pouvez réduire le temps de démarrage de votre application .NET Framework en précompilant vos fichiers binaires. Vous pouvez utiliser cette technologie sur des applications volumineuses que vous empaquetez et distribuez par le biais du Microsoft Store. Dans certains cas, nous avons observé une amélioration de 20 % des performances. Pour plus d’informations sur cette technologie, consultez la vue d’ensemble technique.

Nous avons publié le compilateur d’images natives en tant que package NuGet. Vous pouvez appliquer ce package à n’importe quelle application .NET Framework qui cible .NET Framework version 4.6.2 ou ultérieure. Ce package ajoute une étape post-build qui inclut une charge utile native à tous les fichiers binaires utilisés par votre application. Cette charge utile optimisée sera chargée lors de l’exécution de l’application dans .NET 4.7.2 et versions ultérieures, tandis que les versions précédentes continueront à charger le code MSIL.

.NET Framework 4.7.2 est inclus dans la Mise à jour de Windows 10 d’avril 2018. Vous pouvez également installer cette version du .NET Framework sur des PC qui exécutent Windows 7+ et Windows Server 2008 R2+.

Important

Si vous souhaitez produire des images natives pour votre application empaquetée par le projet de création de packages d’applications Windows, veillez à affecter la Mise à jour anniversaire Windows 10 comme version minimale de la plateforme cible du projet.

Comment produire des images natives ?

Effectuez les étapes suivantes pour configurer votre projet :

  1. Configurer la version cible du .NET Framework sur 4.6.2 ou version ultérieure

  2. Configurer la plateforme cible sur x86 ou x64

  3. Ajouter les packages NuGet

  4. Créer une build de mise en production

Configurer la version cible du .NET Framework sur 4.6.2 ou version ultérieure

Pour configurer votre projet de façon à ce qu’il cible .NET Framework 4.6.2, vous avez besoin des outils de développement .NET Framework 4.6.2 ou plus récents. Ces outils sont disponibles par le biais du programme d’installation de Visual Studio en tant que composants facultatifs sous la charge de travail du développement d’applications de bureau .NET :

Install .NET 4.6.2 development tools

Vous pouvez également vous procurer les packs de développement .NET à l’adresse suivantes : https://www.microsoft.com/net/download/visual-studio-sdks

Configurer la plateforme cible sur x86 ou x64

Le compilateur d’images natives optimise le code pour une plateforme donnée. Pour l’utiliser, vous devez configurer votre application afin qu’elle cible une plateforme spécifique, telle que x86 ou x64.

Si votre solution contient plusieurs projets, seul le projet de point d’entrée (probablement celui qui produit un fichier exécutable) doit être compilé en tant que x86 ou x64. Les fichiers binaires supplémentaires référencés à partir du projet principal seront traités avec l’architecture spécifiée dans le projet principal, même s’ils sont compilés en tant qu’AnyCPU.

Pour configurer votre projet

  1. Cliquez avec le bouton droit sur votre solution, puis sélectionnez Gestionnaire de configurations.

  2. Sélectionnez <Nouveau...> dans le menu déroulant Plateforme en regard du nom du projet qui produit votre fichier exécutable.

  3. Dans la boîte de dialogue Nouvelle plateforme de projet, vérifiez que la liste déroulante Copier les paramètres à partir de est définie sur N’importe quelle UC.

Configure x86

Répétez cette étape pour Release/x64 si vous souhaitez produire des fichiers binaires x64.

Important

La configuration AnyCPU n’est pas prise en charge par le compilateur d’images natives.

Ajouter les packages NuGet

Le compilateur d’images natives est fourni sous la forme d’un package NuGet que vous devez ajouter au projet Visual Studio qui produit le fichier exécutable. Il s’agit généralement de votre projet Windows Forms ou WPF. Pour ce faire, utilisez cette commande PowerShell.

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

Créer une version Release

Le package NuGet configure le projet afin qu’il exécute un outil supplémentaire pour les builds de mise en production. Cet outil ajoute le code natif aux mêmes fichiers binaires. Pour vérifier que l’outil a traité les fichiers binaires, vous pouvez examiner la sortie de génération pour vous assurer qu’elle inclut un message tel que celui-ci :

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

Vous pouvez déclencher la compilation d’images natives sur des builds de non-mise en production en affectant à la propriété NgenR2R la valeur true dans le fichier projet.

Questions fréquentes (FAQ)

Q. Les nouveaux fichiers binaires fonctionnent-ils sur les ordinateurs sans .NET Framework 4.7.2 ?

R. Les fichiers binaires optimisés tirent parti des améliorations apportées lors de l’exécution avec .NET Framework 4.7.2. Les clients qui exécutent des versions antérieures du .NET Framework chargeront le code MSIL non optimisé à partir du fichier binaire.

Q. Comment puis-je fournir des commentaires ou signaler des problèmes ?

R. Signalez tout problème à l’aide de Microsoft Visual Studio 2017 Feedback Tool. Informations complémentaires.

Q. Quel est l’impact de l’ajout de l’image native aux fichiers binaires existants ?

R. Les fichiers binaires optimisés contiennent le code managé et le code natif, ce qui rend les fichiers finaux plus volumineux.

Q. Est-ce que je peux publier des fichiers binaires en utilisant cette technologie ?

R. Cette version comprend une licence Go Live que vous pouvez utiliser dès aujourd’hui.