[ALM] Réaliser ses propres packages Nuget

Les packages Nuget sont un vrai bonheur à utiliser, les ressources ne manquent pas sur le serveur officiel Nuget.org, néanmoins il est souvent intéressant de réaliser ses propres packages Nuget pour par exemple faciliter le partage de ses propres Framework. Bonne nouvelle cela est très simple à réaliser ;) ce billet fera une petite introduction sur ce sujet.

 

Créer son NuSpec

Pour créer un package nuget il va falloir le décrire, et pour cela tout se passe par un fichier de spécification appelé NuSpec (XML). Nuget propose en ligne de commande de fournir le template de base du NuSpec :

   1: Nuget spec MyPackageNuget

Et voici le résultat

image

 

Configurer son NuSpec

Les 3 champs principaux sont :

  • Id : Identifiant ou nom du package

  • Version : version du package Nuget

  • Dependencies : pour préciser les dépendances requises par le package

    • Ex : <dependency id="EntityFramework" version="6.1.1" />

      • Installera automatiquement EntityFramework en version 6.1.1 lors de l’installation du package si celui-ci n’est pas présent

A partir de ces éléments il est déjà possible de créer un package Nuget qui pourrait “templater” un projet en installant quelques dépendances :)

Il est surtout intéressant de joindre des fichiers au packages NuGet, pour cela il suffit de passer par la balise Files, comme sur l’exemple ci-dessous :

   1:</metadata>
   2:     <files>
   3:             <file src="..\MyDll.dll" target="lib\net45" />
   4:     </files>
   5: </package>

Ici la dll MyDll sera ajoutée au projet utilisant le framework 4.5. De nombreuses cibles sont disponibles il faut simplement jouer sur la propriété Target :

  • lib\wp81 => Windows Phone 8.1
  • lib\net45 => Framework 4.5
  • content\images => place le fichier dans le dossier images du projet

 

Générer le package Nuget

Une fois la configuration réalisée, il est désormais temps de générer le package, c’est encore très simple :

   1: nuget pack MyPackageNuget

 

Le package est maintenant généré est utilisable dans tout les projets, il ne reste plus qu’à le placer sur un serveur Nuget via les api ou un copié/collé :)

 

Conclusion

Le NuSpec offre bien entendu beaucoup plus de fonctionnalité. Néanmoins il est possible avec cette petite introduction de réaliser quelques packages bien utile :)

Ces billets pourraient aussi vous intéresser

Vous nous direz ?!

Commentaires

comments powered by Disqus