NuGet

De Banane Atomic
Aller à la navigationAller à la recherche

Généralités

Facilite l'ajout et le retrait de bibliothèques externes comme références d'un projet.

NuGet permet le téléchargement et l'installation de paquets qui contiennent:

  • des bibliothèques externes
  • des fichiers de contenus
  • des scripts powershell

Avantages:

  • plus besoin de commiter les bibliothèques externes, seulement le fichier de configuration NuGet

Inconvénients:

  • nécessite une connexion pour le téléchargement du paquet
  • télécharge la dernière version du paquet, qui n'est peut-être pas compatible avec la version ultérieure
  • pas d'installation de templates ou de snippets

Installation d'un paquet

Clique-droit sur References → Manage NuGet Packages
L'installation d'un paquet créé ou modifie le fichier packages.config qui se trouve dans le dossier du projet.

packages.config
<packages>
  <package id="log4net" version="2.0.3" targetFramework="net45" />
</packages>

Un dossier packages est créé dans le dossier de la solution. Il contient les packages NuGet des projets de la solution.

Réinstallation d'un paquet

Après le changement de la version du framework d'un projet, il peut être nécessaire de réinstaller certain paquets NuGet.
Tool → NuGet Package Manager → Package Manager Console

Dos.svg
Update-Package –reinstall <packageName>

NuGet et les logiciel de gestion de versions (Version Control Software)

Dossier packages dans VCS

Le plus simple et d'ajouter au VCS le dossier « packages » ainsi que les fichiers « packages.config ».
Mais ajouter des fichiers binaires au VCS ne représente que peu d’intérêt et fait grossir considérablement la taille du dépôt.

Récupération des paquets durant le build

Dans ce cas, le dossier « packages » n'est pas ajouté au VCS.
NuGet télécharge les paquets manquant à la compilation.

Automatic Package Restore

Tools → Options → NuGet Package Manager → General → Allow NuGet to download missing packages.
Pour que le dossier « packages » ne soit pas inclus dans TFS:

$(SolutionDir)/.nuget/NuGet.Config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <solution>
    <add key="disableSourceControlIntegration" value="true" />
  </solution>
</configuration>

MSBuild-Integrated package restore

Clique-droit sur la solution → Enable NuGet Package Restore
Un dossier « .nuget » est ajouté dans la solution, il contient les fichiers qui permettent de récupérer les paquets.
Le fichier de solution et les fichiers de projet sont aussi modifiés pour leurs ajouter des règles de compilation.