Partager via


Comment créer un package NuGet avec l’interface CLI .NET

Remarque

Voici des exemples de ligne de commande utilisant Unix. La dotnet pack commande comme illustré ici fonctionne de la même façon sur Windows.

Les bibliothèques .NET Standard et .NET Core sont censées être distribuées en tant que packages NuGet. C’est en fait la façon dont toutes les bibliothèques .NET Standard sont distribuées et consommées. Cette opération est la plus facile à effectuer avec la dotnet pack commande.

Imaginez que vous venez d’écrire une nouvelle bibliothèque géniale que vous souhaitez distribuer sur NuGet. Vous pouvez créer un package NuGet avec des outils multiplateformes pour le faire exactement ! L’exemple suivant suppose une bibliothèque appelée SuperAwesomeLibrary qui cible netstandard1.0.

Si vous avez des dépendances transitives, autrement dit, un projet qui dépend d’un autre package, veillez à restaurer des packages pour l’ensemble de la solution avec la dotnet restore commande avant de créer un package NuGet. L’échec de cette opération entraîne l’échec de la dotnet pack commande.

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.

Une fois les packages restaurés, vous pouvez accéder au répertoire dans lequel se trouve une bibliothèque :

cd src/SuperAwesomeLibrary

Ensuite, il s’agit simplement 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é. Si vous souhaitez créer un package NuGet avec des fichiers binaires de mise en production, vous devez simplement ajouter le commutateur --configuration (ou -c) et utiliser release comme argument.

dotnet pack --configuration release

Votre dossier /bin dispose désormais d’un dossier de mise en production contenant votre package NuGet avec des fichiers binaires de mise en production :

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

Vous disposez maintenant des fichiers nécessaires pour publier un package NuGet !

Ne confondez dotnet pack pas avec dotnet publish

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

Voir aussi