Création de projets de bibliothèque Platform-Specific pour NuGet
Les projets de bibliothèque multiplateforme qui ciblent des plateformes spécifiques, comme iOS et Android, fonctionnent mieux avec les projets partagés.
NuGet peut contenir du code spécifique à iOS et Android, ainsi que du code .NET commun aux deux.
Plusieurs assemblys sont créés et intégrés dans un seul package NuGet. Les normes NuGet garantissent que le package peut être ajouté à tous les types de projets pris en charge, tels que les projets Xamarin.iOS et Android.
É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 Spécifique à la plateforme :
Terminez l'Assistant. Les projets suivants sont ajoutés à la solution :
- Projet Android : le code spécifique à Android peut éventuellement être ajouté à ce projet.
- Projet iOS : le code spécifique à iOS peut éventuellement être ajouté à ce projet.
- Projet NuGet : aucun code n’est ajouté à ce projet. Il fait référence aux autres projets et contient la configuration des métadonnées pour la sortie du package NuGet.
-
Projet partagé : le code commun doit être ajouté à ce projet, y compris le code spécifique à la plateforme à l’intérieur
#if
des directives du compilateur.
Cliquez avec le bouton droit sur le projet NuGet et choisissez Options, puis ouvrez la section Métadonnées du package > NuGet et entrez les métadonnées requises (ainsi que les métadonnées facultatives) :
Également dans la fenêtre Options du projet , ouvrez la section Assemblys de référence et choisissez les profils PCL pris en charge par la bibliothèque partagée via « appât et commutateur » :
Notes
« Appât et commutateur » signifie que les assemblys PCL contiennent uniquement l’API exposée par la bibliothèque (elle ne peut pas contenir le code propre à la plateforme). Lorsque le NuGet est ajouté à un projet Xamarin, les bibliothèques partagées sont compilées sur la LCP, mais les assemblys spécifiques à la plateforme contiennent le code qui est réellement utilisé par le projet iOS ou Android.
Cliquez avec le bouton droit sur le projet 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 spécifique à la plateforme qui prend en charge iOS et Android, et dont deux assemblys de référence ont été sélectionnés :