Créer des packages Nuget à partir de votre solution .NET

Aujourd’hui nous allons voir ensemble comment créer des packages Nuget à partir de notre solution .NET.

Vous savez ce sont ces packages qui vous aident grandement dans vos développements comme NewtonSoft.json , RestSharp etc.

Si vous estimez que vous avez une bibliothèque de classes qui mérite d’être publiée sur votre feed Azure Artifact accessible aux membres de votre espace Azure DevOps ou sur le feed Nuget public directement, voici comment procéder.

Azure artifact :

Pour commencer, il faut créer un feed Azure artifact :

Créer le package dans Visual Studio

Clic droit sur la class library puis cliquez sur « Compresser » ou packi en anglais.

Cela va vous génerer un fichier .nupkg comme suit :

Ensuite récupérez dans Azure DevOps, la commande pour se connecter au feed et pousser :

Mettez vous dans le répertoire ou se trouve veut exécutable « nuget.exe » puis rentrez la commande suivante avec vos paramètres :

.\nuget.exe push -Source "https://pkgs.dev.azure.com/alexandrecastro0020/_packaging/myfeed/nuget/v3/index.json" -ApiKey key "E:\Sources\Exakis\RepositoryPattern-EF-UnitOfWork-Sample\Repository.EF.UoW.Core\bin\Debug\Repository.EF.UoW.Core.1.0.0.nupkg"

Il se peut que l’on vous demande votre username / password afin de valider l’envoi et vous devriez avoir quelque chose qui ressemble à celà :

Pour finir, vous allez vouloir l’utiliser et pour cela, vous allez devoir rajouter ce feed à vos feeds existants dans les options de Visual Studio :

Vous devriez le retrouvez dans vos packages disponibles en sélectionnant le bon feed :

Nous avons vu la manière simple via des lignes de commande mais il existe des pipelines IC/CD qui font la même chose de manière automatisée par exemple lorsque nous poussons une mise à jour sur une branche de release 😉

Github , Github actions vers Nuget.org

Nous allons maintenant voir comment builder, publier et déployer un package nuget via les github actions.

Prenez votre bibliothèque de classe sur Github et créez une action comme suit :

Créez votre Actions qui correspond à une pipeline CI/CD :

Il nous manque juste l’étape de publication de notre package sur Nuget.org.

Pour cela il vous faudra un compte nuget.org avec une APi Key que vous rentrerez dans vos secrets sur votre repository : (Settings -> Secrets )

Et il nous manque aussi la tache qui va packager et publier sur Nuget.org 😉

Voici le code de l’action au complet :

Et voila nous avons fini notre tour d’horizon de la publication de packages Nuget 😎

J’attends donc vos packages 😉

Have fun coding !