Guide pratique pour créer un package NuGet avec l’interface CLI .NET

Notes

Voici des exemples de ligne de commande avec Unix. La commande dotnet pack montrée ici fonctionne de la même façon sur Windows.

Les bibliothèques .NET Standard et .NET Core devraient être distribuées sous forme de packages NuGet. Il s’agit en fait de la façon dont toutes les bibliothèques .NET Standard sont distribuées et consommées. Cette opération est plus facile avec la commande dotnet pack.

Imaginez que vous venez d’écrire une nouvelle bibliothèque que vous voulez distribuer via NuGet. Pour cela, vous pouvez créer un package NuGet avec les outils multiplateformes. L’exemple suivant suppose une bibliothèque nommée SuperAwesomeLibrary ciblant netstandard1.0.

Si vous avez des dépendances transitives (c’est-à-dire un projet qui dépend d’un autre package), veillez à restaurer les packages de l’ensemble de la solution avec la commande dotnet restore avant de créer un package NuGet. Si vous ne le faites pas, la commande dotnet pack ne fonctionne pas correctement.

Vous n’avez pas besoin d’exécuter dotnet restore, car il est exécuté implicitement par toutes les commandes qui nécessitent une restauration pour se produire, comme dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish et dotnet pack. Pour désactiver la restauration implicite, utilisez l’option --no-restore .

La commande dotnet restore est toujours utile dans certains scénarios où la restauration explicite est logique, comme les builds d’intégration continue dans Azure DevOps Services ou dans les systèmes de génération qui doivent contrôler explicitement le moment où la restauration se produit.

Pour plus d’informations sur la gestion des flux NuGet, consultez la documentation dotnet restore.

Après avoir vérifié que les packages sont restaurés, vous pouvez accéder au répertoire où se trouve une bibliothèque :

cd src/SuperAwesomeLibrary

Il s’agit d’une seule commande à partir de la ligne de commande :

dotnet pack

Votre dossier /bin/Debug se présente maintenant comme suit :

$ ls bin/Debug
netstandard1.0/
SuperAwesomeLibrary.1.0.0.nupkg
SuperAwesomeLibrary.1.0.0.symbols.nupkg

Cela produit un package capable d’être débogué. Pour générer un package NuGet avec des fichiers binaires compilés, il suffit d’ajouter le commutateur --configuration (ou -c) et d’utiliser release comme argument.

dotnet pack --configuration release

Votre dossier /bin a désormais un dossier release contenant votre package NuGet avec les fichiers binaires compilés :

$ ls bin/release
netstandard1.0/
SuperAwesomeLibrary.1.0.0.nupkg
SuperAwesomeLibrary.1.0.0.symbols.nupkg

Vous avez maintenant les fichiers nécessaires pour publier un package NuGet !

Ne confondez pas dotnet pack et dotnet publish

Il est important de noter qu’à aucun moment, la commande dotnet publish n’est impliquée. La commande dotnet publish sert à déployer des applications avec toutes leurs dépendances dans le même bundle, et non pas à générer un package NuGet à distribuer et à consommer sur NuGet.

Voir aussi