Création d’une bibliothèque multiplateforme pour NuGet
La création d’un projet de bibliothèque multiplateforme qui utilise PCL ou .NET Standard signifie que le NuGet résultant peut être ajouté à n’importe quel projet .NET qui prend en charge le profil cible, y compris les projets ASP.NET ou les applications de bureau utilisant WinForms, WPF ou UWP.
La bibliothèque peut uniquement contenir du code pris en charge par le profil PCL ou .NET Standard sélectionné, ainsi que tous les autres NuGets ajoutés. Cela convient à la logique métier et aux algorithmes qui peuvent être exprimés entièrement dans la bibliothèque de classes de base .NET.
Un assembly unique est créé et intégré dans un package NuGet.
Si vous avez besoin ultérieurement de fonctionnalités spécifiques à la plateforme, des projets spécifiques à la plateforme peuvent être ajoutés.
Étapes de création d’une bibliothèque multiplateforme NuGet
Sélectionnez Fichier > nouvelle solution (ou cliquez avec le bouton droit sur une solution existante et choisissez Ajouter un > nouveau projet).
Choisissez Bibliothèque multiplateforme dans la section Bibliothèque multiplateforme > :
Entrez un nom et une description, puis choisissez Unique pour toutes les plateformes :
Terminez l'Assistant. Un projet de bibliothèque unique est créé dans la solution.
Cliquez avec le bouton droit sur le nouveau projet de bibliothèque, puis sélectionnez Options. La section Build > General permet de définir l’infrastructure cible : choisissez un profil PCL portable .NET ou une version .NET Standard :
Également dans la fenêtre Options du projet , ouvrez la section Métadonnées du package > NuGet et entrez les métadonnées requises (ainsi que les métadonnées facultatives) :
Cliquez avec le bouton droit sur le projet de bibliothèque et choisissez Créer un package NuGet (ou générer ou déployer la solution) et le fichier de package NuGet .nupkg sera enregistré dans le dossier /bin/ (Déboguer ou Libérer, selon la configuration) :
Vérification de la sortie
Les packages NuGet étant également des fichiers ZIP, il est possible d’inspecter la structure interne du package généré.
Cette capture d’écran montre le contenu d’un nuGet basé sur PCL. Un seul assembly PCL est inclus :
Ajout de code Platform-Specific
Les projets basés sur PCL et les projets .NET Standard ne peuvent pas contenir de références spécifiques à la plateforme (telles que les fonctionnalités iOS ou Android).
Si un projet PCL ou .NET Standard existant doit être développé pour inclure du code spécifique à la plateforme, vous pouvez cliquer avec le bouton droit sur le projet et sélectionner Ajouter une > implémentation de plateforme... :
Un ou plusieurs projets de plateforme peuvent être ajoutés à la solution, et la bibliothèque PCL ou .NET Standard existante peut éventuellement être convertie en projet partagé :
Après la conversion en projet partagé, accédez à la sectionAssemblys de référence de package > NuGet d’options > de projet et vérifiez que tous les profils requis sont sélectionnés (de sorte que nuGet continue d’être compatible avec les projets où il a été utilisé précédemment).