NuGet est une véritable évolution permettant de packager vos développement pour faciliter leur réutilisation pour d'autres projets. Cet article décrit les bases de la création de packages NuGet.
Télécharger l'outils en ligne de commandes
La première chose à faire est de télécharger l'outils en ligne de commande NuGet sur CodePlex.
Création du fichier de spécifications
Exécutez la commande suivante pour créer le fichier de spécification NuGet:
NuGet spec
Le fichier Package.nuspec est alors généré. Il s'agit d'un fichier au format XML:
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>Package</id>
<version>1.0</version>
<authors>Author here</authors>
<owners>Owner here</owners>
<licenseUrl>http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE</licenseUrl>
<projectUrl>http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE</projectUrl>
<iconUrl>http://ICON_URL_HERE_OR_DELETE_THIS_LINE</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Package description</description>
<tags>Tag1 Tag2</tags>
<dependencies>
<dependency id="SampleDependency" version="1.0" />
</dependencies>
</metadata>
</package>
Une explication des métadonnées:
- id: L'identifiant unique du package, c'est le nom qui sera visible lors du listing des packages.
- version: La version du package.
- authors: La liste des auteurs du package séparés par des virgules.
- owners: La liste des propriétaires du package séparés par des virgules.
- licenseUrl: Lien vers le détails de la license du package.
- projectUrl: Lien vers le projet lié au package.
- iconUrl: Lien de l'icône du package, il est conseillé une image de 32x32 pixels avec un fond transparent.
- requiredLicenseAcceptance: Un booléen spécifiant si la license doit être acceptée avant l'installation du package.
- description: La description du package.
- tags: La liste des mot clefs liés au package séparés par des espaces permettant de faire des recherches.
- dependencies: La liste des dépendances requises par le package.
D'autres éléments sont aussi disponible:
- title: Le nom du package.
- summary: Le résumé du package.
- language: La langue du package.
- frameworkAssemblies: La liste des références du framework .NET requises par le package.
- files: La liste des fichiers à inclure dans le package et qui ne sont pas inclus dans le dossier content. Plus de détails sur cet élément sur CodePlex.
Les détails du schéma XML des fichiers de spécifications NuGet est disponible sur CodePlex.
Ajout des fichiers au package
Pour ajouter des fichiers au package autrement qu'en les spécifiant dans le fichier de spécifications, vous pouvez créer un dossier nommé content au même niveau que le fichier de spécifications. Ce dossier représente la racine du projet dans lequel sera installé le package. Les fichiers et dossiers inclus dans celui-ci seront fusionnés avec le projet cible.
Vous pouvez modifier l'extension du fichier Web.config en ajoutant .transform, cela aura pour effet de réaliser une fusion de son contenu avec le fichier de configuration du projet cible.
De la même manière, vous pouvez modifier l'extension des fichiers de code en ajoutant l'extension .pp, au moment de l'installation, l'extension disparaîtra et les mots clefs à l'intérieur du fichier seront remplacés. Par exemple, vous pouvez utiliser le mot clef $rootnamespace$ qui sera remplacé par l'espace de nom du projet cible au moment de l'installation. Vous pouvez utiliser toutes les propriétés de projet entourées de caractères $ pour les remplacements. Cette liste est disponible sur le MSDN.
Création du package
Pour créer un package, exécutez la commande suivante dans le dossier contenant le fichier de spécifications:
NuGet pack
Un fichier avec l'id du package suivi de la version et portant l'extension .nupkg sera créé à partir du fichier de spécifications.
Vous pouvez ensuite installer votre package dans votre projet.