Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Remarque : Visual Studio 2017 est recommandé pour développer des bibliothèques .NET Standard. Visual Studio 2015 peut fonctionner, mais les outils .NET Core n’étaient qu’en préversion. Consultez la page Créer et publier un package avec Visual Studio 2017 pour utiliser NuGet 4.x+ et Visual Studio 2017.
La bibliothèque .NET Standard est une spécification formelle des API .NET destinées à être disponibles sur tous les runtimes .NET, renforçant ainsi l’uniformité de l’écosystème .NET. La bibliothèque .NET Standard définit un ensemble uniforme d’API de bibliothèque de classes de base pour toutes les plateformes .NET à implémenter, indépendamment de la charge de travail. Elle permet aux développeurs de produire du code qui est utilisable sur tous les runtimes .NET, et réduit, si ce n’est élimine, les directives de compilation conditionnelle spécifiques à la plateforme dans le code partagé.
Ce guide vous explique comment créer un package NuGet ciblant une bibliothèque .NET Standard 1.4 ou .NET Framework 4.6. Une bibliothèque .NET Standard 1.4 fonctionne sur .NET Framework 4.6.1, la plateforme Windows universelle 10, .NET Core et Mono/Xamarin. Pour plus d’informations, consultez la table de mappage .NET Standard (documentation .NET). Vous pouvez choisir une autre version de la bibliothèque .NET Standard si vous le souhaitez.
Prérequis
Visual Studio 2015 Update 3
(.NET Standard uniquement) Kit SDK .NET Core
Interface de ligne de commande NuGet. Téléchargez la dernière version de nuget.exe à partir de nuget.org/downloads, puis enregistrez-la dans un emplacement de votre choix. Ajoutez ensuite cet emplacement à votre variable d’environnement PATH, si ce n’est déjà fait.
Notes
nuget.exe étant l’outil CLI proprement dit, pas un programme d’installation, veillez à enregistrer le fichier téléchargé à partir de votre navigateur au lieu de l’exécuter.
Créer le projet de bibliothèque de classes
Dans Visual Studio, fichier > nouveau > Project, développez le nœud Windows Visual C#>, sélectionnez Bibliothèque de classes (portable), remplacez le nom par AppLogger, puis sélectionnez OK.
Dans la boîte de dialogue Ajouter une bibliothèque de classes portable qui s’affiche, sélectionnez les options de
.NET Framework 4.6
et deASP.NET Core 1.0
. (Si vous ciblez .NET Framework, vous pouvez sélectionner n’importe quelle option correspondante.)Si vous ciblez .NET Standard, cliquez avec le bouton droit sur le
AppLogger (Portable)
Explorateur de solutions, sélectionnez Propriétés, sélectionnez l’onglet Bibliothèque, puis sélectionnez Target .NET Platform Standard dans la section Ciblage. Cette action demande une confirmation, après quoi vous pourrez sélectionner.NET Standard 1.4
(ou une autre version disponible) dans la liste déroulante :Cliquez sur l’onglet Générer, définissez Configuration sur
Release
, puis cochez la case Fichier de documentation XML.Ajoutez votre code au composant, par exemple :
namespace AppLogger { public class Logger { public void Log(string text) { Console.WriteLine(text); } } }
Définissez la configuration Release, générez le projet et vérifiez que les fichiers DLL et XML sont produits dans le dossier
bin\Release
.
Créer et mettre à jour le fichier .nuspec
Ouvrez une invite de commandes, accédez au dossier contenant le dossier
AppLogger.csproj
(un niveau en dessous du fichier.sln
) et exécutez la commande NuGetspec
pour créer le fichierAppLogger.nuspec
initial :nuget spec
Ouvrez
AppLogger.nuspec
dans un éditeur et mettez-le à jour afin qu’il corresponde au code ci-après, en remplaçant YOUR_NAME par une valeur appropriée. La<id>
valeur, en particulier, doit être unique dans nuget.org (consultez les conventions d’affectation de noms décrites dans Création d’un package. De plus, vous devez également mettre à jour les balises authors et description afin de ne pas obtenir d’erreur durant l’empaquetage.<?xml version="1.0"?> <package > <metadata> <id>AppLogger.YOUR_NAME</id> <version>1.0.0</version> <title>AppLogger</title> <authors>YOUR_NAME</authors> <owners>YOUR_NAME</owners> <requireLicenseAcceptance>false</requireLicenseAcceptance> <description>Awesome application logging utility</description> <releaseNotes>First release</releaseNotes> <copyright>Copyright 2018 (c) Contoso Corporation. All rights reserved.</copyright> <tags>logger logging logs</tags> </metadata> </package>
Ajoutez des assemblys de référence au fichier
.nuspec
, concrètement les fichiers DLL et XML IntelliSense de la bibliothèque :Si vous ciblez .NET Standard, les entrées se présentent ainsi :
<!-- Insert below <metadata> element --> <files> <file src="bin\Release\AppLogger.dll" target="lib\netstandard1.4\AppLogger.dll" /> <file src="bin\Release\AppLogger.xml" target="lib\netstandard1.4\AppLogger.xml" /> </files>
Si vous ciblez .NET Framework, les entrées se présentent ainsi :
<!-- Insert below <metadata> element --> <files> <file src="bin\Release\AppLogger.dll" target="lib\net46\AppLogger.dll" /> <file src="bin\Release\AppLogger.xml" target="lib\net46\AppLogger.xml" /> </files>
Cliquez avec le bouton droit sur la solution et sélectionnez Générer la solution pour générer tous les fichiers du package.
Déclaration des dépendances
Si vous avez des dépendances sur d’autres packages NuGet, répertoriez-les dans l’élément <dependencies>
du manifeste avec des éléments <group>
. Par exemple, pour déclarer une dépendance sur NewtonSoft.Json version 8.0.3 ou supérieure, ajoutez le code suivant :
<!-- Insert within the <metadata> element -->
<dependencies>
<group targetFramework="uap">
<dependency id="Newtonsoft.Json" version="8.0.3" />
</group>
</dependencies>
La syntaxe de l’attribut version indique ici que la version 8.0.3 ou supérieure est acceptable. Pour spécifier des plages de versions différentes, consultez Gestion de version des packages.
Ajout d’un fichier readme
Créez votre fichier readme.txt
, placez-le dans le dossier racine du projet, puis faites-y référence dans le fichier .nuspec
:
<?xml version="1.0"?>
<package >
<metadata>...
</metadata>
<files>
<file src="readme.txt" target="" />
</files>
</package>
Visual Studio affiche readme.txt
quand le package est installé dans un projet. Les fichiers n’est pas affiché quand il est installé dans des projets .NET Core ou pour des packages qui sont installés en tant que dépendance.
Empaqueter le composant
Une fois que le fichier .nuspec
est finalisé et qu’il référence tous les fichiers à inclure dans le package, vous pouvez exécuter la commande pack
:
nuget pack AppLogger.nuspec
Cette opération génère AppLogger.YOUR_NAME.1.0.0.nupkg
. Si vous ouvrez ce fichier dans un outil comme NuGet Package Explorer et que vous développez tous les nœuds, le contenu suivant (indiqué pour .NET Standard) apparaît :
Conseil
Un fichier .nupkg
est simplement un fichier zip avec une extension différente. Vous pouvez alors également examiner le contenu de package en définissant .nupkg
sur .zip
, mais n’oubliez pas de restaurer l’extension avant de charger un package sur nuget.org.
Pour rendre votre package disponible pour d’autres développeurs, suivez les instructions de publication d’un package.
Notez que pack
nécessite Mono 4.4.2 sur Mac OS X et ne fonctionne pas sur les systèmes Linux. Sur un Mac, vous devez également convertir les chemins d’accès Windows dans le fichier .nuspec
en chemins d’accès de style Unix.
Rubriques connexes
- Informations de référence sur le fichier .nuspec
- Prise en charge de plusieurs versions du .NET Framework
- Inclure des cibles et des propriétés MSBuild dans un package
- Création de packages localisés
- Packages de symboles
- Gestion des versions de package
- Documentation de la bibliothèque .NET Standard
- Portage vers .NET Core à partir du .NET Framework