52 votes

NuGet et le contrôle de version distribué (DVCS)

Je me demande s'il est possible d'utiliser nuget pour ne stocker dans le contrôle de version que les références aux paquets nécessaires (uniquement le package.config et ignorer le dossier des paquets).

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 build script.

Mise à jour :

Il semble que je ne sois pas le seul à avoir demandé cette fonctionnalité : Voir ce point de travail (merci à PHeiberg pour l'astuce)

Mise à jour 2 :

NuGet intègre désormais cette fonctionnalité. Voir Utiliser NuGet sans commettre les paquets au contrôle de source pour les détails. Il ne reste plus qu'à ajouter le répertoire des paquets à .gitignore ou un équivalent de votre VCS ( /packages/ fera l'affaire si vous l'avez dans la racine de votre dépôt et que vous utilisez git).

19voto

Robert Ros Points 832

Je viens de découvrir NuGetPowerTools : https://github.com/davidfowl/NuGetPowerTools

Voir aussi : http://blog.davidebbo.com/2011/08/easy-way-to-set-up-nuget-to-restore.html

Mise à jour : NuGet 1.6 prend désormais en charge la restauration de paquets : http://docs.nuget.org/docs/release-notes/nuget-1.6

8voto

PHeiberg Points 15909

Je ne sais pas pour votre première question.

Quant à 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 à jour chaque paquet avec la dernière version. Voir le référence de commande pour plus de détails.

Scott Guthrie dit ceci sur le sujet :

"Vous pouvez intégrer l'option de ligne de commande avec une solution CI et effectuer une commande commande update-package explicitement en tant que de votre processus de construction/CI pour les mises à jour. Franchement, je ne suis pas sûr que cela ait du sens pour les scénarios dont nous dont nous parlons, car typiquement vous voulez qu'un dev décide avant de mettre à jour un noyau d'exécution à une nouvelle version. Le modèle par défaut de NuPack modèle par défaut de NuPack est qu'un développeur utiliserait NuPack pour installer une bibliothèque - et et que NuPack enregistre automatiquement le paquet et les dépendances à la source source. De cette façon, un autre développeur (ou le serveur CI) n'aurait plus besoin d'utiliser NuPack à nouveau - ils pourraient simplement synchroniser leur source et construire. Mais comme je l'ai mentionné plus tôt - si vous voulez explicitement faire une mise à jour dans le cadre de votre processus vous pouvez le faire."

Edit :

Après votre commentaire, je comprends ce que vous essayez d'obtenir. J'ai trouvé ce long fil de discussion dans la liste de discussions NuPack à propos de ce problème. Une solution ne fera apparemment pas partie de la v1. Une tâche de construction personnalisée dans le CI de votre choix et une configuration dans votre repo pour celle-ci est la seule solution que je vois. Merci de nous faire part de vos conclusions. Vous m'avez intéressé.

5voto

David White Points 1251

Cette question fait actuellement l'objet d'une discussion à l'adresse suivante Le blog de Phil Haack où il demande des commentaires sur la façon d'aborder cette question.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X