Visual Studio – Vérifier la portabilité de votre code avec le Portability Analyzer

Présentation
La plateforme .NET s’est enrichie en proposant différents Frameworks (.Net Framework, .NET Framework Core, Xamarin, .NET Standard, …). Chacun de ces Frameworks, de par leurs évolutions, proposent différentes versions de leurs composants. Comment vérifier la portabilité de votre code ? Dans Visual Studio, Microsoft propose un outil appelé le Portability Analyzer, qui fournit un rapport détaillé sur la flexibilité du code sur les différentes implémentations de .NET, en analysant les assemblys. Cet outil est présent sous forme d’extension. S’il n’est pas présent dans Visual Studio, vous pouvez le télécharger puis l’installer depuis le Market Place de Visual Studio : https://marketplace.visualstudio.com/items?itemName=ConnieYau.NETPortabilityAnalyzer

Configuration
En cliquant sur l’élément Analyser > Portability Analyzer Settings, nous pouvons accéder à la fenêtre de configuration de l’analyseur de portabilité :

Nous pouvons sélectionner les Frameworks et les versions sur lesquels nous souhaitons déployer notre application. Par exemple, nous souhaitons créer une application qui devra s’exécuter sur les versions 4.5 et 4.7.2 du Framework .NET.

Mise en oeuvre
Le code de notre application contient l’instruction suivante :

string sInfosFramework = AppContext.TargetFrameworkName;

Or, la classe AppContext existe depuis la version 4.6 du Framework .NET.

Pour exécuter l’analyseur de portabilité sur notre projet, afficher le menu contextuel du projet dans l’explorateur de solutions et cliquer sur l’élément Analyse Project Portability. Les messages de la fenêtre des erreurs affichent les éventuelles erreurs de portabilité :

Ce message met en évidence que l’utilisation de la classe AppContext n’est pas appropriée pour être exécutée sur la version 4.5 du Framework .NET.

About: James RAVAILLE

Travaillant avec la plateforme Microsoft .NET depuis 2002, j’alterne les missions de formation et d’ingénierie avec cette plateforme. J’écris ce blog pour transmettre mes connaissances à tout développeur, qu’il soit débutant ou expérimenté.