2010-10-16 24 views
52

Je me demande s'il est possible d'utiliser nuget pour stocker uniquement les références aux paquets requis dans le contrôle de version (seulement le package.config et ignorer le dossier des paquets).NuGet et le contrôle de version distribuée (DVCS)

Existe-t-il un moyen de dire à nuget de (re) télécharger tous les paquets référencés dans les différents fichiers package.config? Ou quelque chose de similaire qui pourrait être mis dans un script de construction.

Mise à jour:

Semble que je ne suis pas le seul qui a demandé cette fonctionnalité: See this work item (grâce à PHeiberg pour l'indice)

Mise à jour 2:

NuGet maintenant a cette fonctionnalité intégrée. Voir Using NuGet without committing packages to source control pour plus de détails. Tout est à gauche pour ajouter le répertoire des paquets à .gitignore ou un équivalent de votre VCS (/packages/ fera l'affaire si vous l'avez à la racine de votre dépôt et que vous utilisez git).

+0

@ répond Robert-ros cela avec l'entrée de blog de David Ebbo . :-) http://blog.davidebbo.com/2011/08/easy-way-to-set-up-nuget-to-restore.html – klabranche

Répondre

8

Je ne connais pas votre première question. En ce qui concerne la mise à jour automatique des paquets par un serveur CI, c'est faisable en théorie. Vous pouvez enchaîner les commandes "List-Package -Installed" et "Update-Package" et mettre chaque paquet à jour avec la dernière version. Voir le command reference pour plus de détails.

Scott Guthrie says this sur le sujet:

« Vous pouvez intégrer l'option de ligne de commande avec une solution de CI et faire une commande de package de mise à jour explicitement partie de votre processus build/CI tirer vers le bas des mises à jour. Franchement, je ne suis pas sûr qui est logique pour les scénarios que nous parlons, bien que, comme généralement vous voulez un peu dev de décider avant la mise à jour d'une exécution de base la dépendance à une nouvelle version. NuPack de le modèle par défaut aurait un développeur utiliser NuPack pour installer une bibliothèque - et NuPack vérifierait automatiquement dans le paquet et les dépendances à la source contrôle. De cette façon, un autre dev (ou le serveur CI ) n'aurait plus besoin d'utiliser NuPack - ils pourraient juste synchroniser leur source et construire. Mais comme je l'ai mentionné plus tôt - si vous vouliez explicitement faire une mise à jour dans le cadre de votre CI processus vous pourriez «

Edit:.

Après votre commentaire, je vois ce que vous êtes J'ai trouvé this long thread dans la liste des discussions NuPack sur le problème.Une solution ne fera apparemment pas partie de v1 Une tâche de construction personnalisée dans le CI de votre choix et une config dans votre repo pour elle est la seule solution que je vois S'il vous plaît rapportez avec vos résultats.Vous m'avez intéressé

+0

Eh bien, je ne veux pas la dernière version, je veux le spécifié - Je ne veux tout simplement pas les binaires dans le dépôt (car cela gonfle considérablement la taille du dépôt d'un dépôt DCVS avec chaque nouvelle version) – Fionn

+0

Ok, ce genre de logique. Vous pouvez coller une liste de noms de paquetages et de versions dans le dépôt, puis demander à votre CI de récupérer chacun de ceux avec une commande "Add-Package -Version". – PHeiberg

+0

Nous avons trouvé une discussion récente à ce sujet. Voir ma modification. – PHeiberg

5

Il ya une discussion en cours sur cette question au Phil Haack's blog, où il demande des commentaires sur la façon d'aborder cette question.