Vérification dans les paquets de NuGet dans le contrôle de version?
Avant NuGet, il était commun accepté des "meilleures pratiques" pour le check-in externe de tous les Dll utilisées sur un projet. En général dans un Libs
ou 3rdParty
répertoire.
Lorsque l'on travaille avec NuGet, suis-je censé le check-in le packages
répertoire, ou est-il un moyen pour MSBuild pour télécharger automatiquement les paquets nécessaires à partir de la nuget nourrir?
- La réponse à cette question d'opinion. Les "exclure" ou " Non " camp soutient que, en raison de la condition de la fonctionnalité définir le rend facile au cours du développement et de construire afin de tirer juste à partir du dépôt de paquets (par ex. nuget.org), il peut seulement être fait au moment de la construction. "Include/camp du Oui maintient que le code ne serait pas construire sans les paquets si l'un dépôt externe deviennent indisponibles. Lire des deux côtés avant de prendre une décision. Voir aussi: softwareengineering.stackexchange.com/questions/301547/...
Vous devez vous connecter pour publier un commentaire.
Pas
Depuis que cette question a été posée il y a maintenant un flux de travail facile à utiliser NuGet sans commettre des forfaits à la source de contrôle
À partir de votre gestionnaire de paquets de la console, vous devez installer le 'NuGetPowerTools':
Ensuite pour activer vos projets à l'appui de pack de restauration, vous devez exécuter une autre commande:
Maintenant, vous êtes prêt à s'engager de votre base de code sans le dossier packages. La commande précédente changé les fichiers de votre projet, de sorte que si des paquets sont manquants, ils sont automatiquement téléchargés et ajoutés.
Source
À l'aide de NuGet sans commettre des paquets de contrôle de code source
Enable NuGet Package Restore
. Voir la doc.packages
dossier plus. Quel est le.nuget
dossier cela crée? Dois-je vérifier que dans?Oui. Envisager le répertoire "packages" pour être équivalent à celui de votre "libs" répertoire que vous avez mentionné dans votre question. C'est l'approche que j'ai personnellement prendre avec mes projets OSS.
Nous étudions les caractéristiques qui permettraient de MSBuild pour télécharger automatiquement les paquets nécessaires, mais qui n'a pas été mis en œuvre (comme de NuGet 1.1).
Je pense que certaines personnes peuvent avoir déjà mis en œuvre ces fonctionnalités sur leur propre, mais notre plan est de chercher à avoir cette fonctionnalité intégrée à NuGet 1.2 ou 1.3, espérons-le.
En dépit de toutes les réponses ici, c'est encore une plaine ole' horrible solution pour ne pas avoir tous vos dépendances, en vertu de "une sorte" de contrôle de version.
Pour GIT, cela signifierait GIT-EPA.
Le récent épisode avec NPM montre pourquoi: Si le dépôt internet dont vous dépendez des pauses, ne sont pas disponibles, etc., eh bien alors, vous êtes foutu aint vous?
Vous n'êtes plus en mesure de construire vos trucs - et, par conséquent, pas en mesure de fournir.
npm
cassé parce qu'il n'a pas unlist paquets, il en fait supprimés. NuGet ne pas le faire; si vous ne pouvez pas accéder NuGet quelque chose est terriblement erronée. Je ne pense pas que le stockage d'un craptonne de dépendances dans git est une bonne solution: il suffit de verrouiller vos dépendances à une version spécifique et un miroir entre vous et sur internet, si ce qui compte pour vous.Depuis posant la question, j'ai mis dans l'approche suivante de sorte que je n'ai pas à vérifier dans le toplovel Paquets répertoire.
Dans un toplevel construire.msbuild fichier:
Dans chaque projet.fichier csproj
Je me rends compte de la réalité a été différente lorsque cette question a été posté et répondu, mais heureusement, la réponse a un peu changé. Il est maintenant possible d'utiliser NuGet pour télécharger les dépendances via MSBuild à l'aide d'un Pré-événement de construction. Vous n'avez pas besoin de mettre le dossier packages dans votre référentiel de code, toutes les dépendances seront téléchargés et/ou mis à jour sur construire. Il peut une solution de contournement, mais il semble assez décent. Consultez le blog suivant pour plus de détails: http://blog.davidebbo.com/2011/03/using-nuget-without-committing-packages.html
De 09/20/13, il ya quelque chose appelé "Nuget Restaurer". En fait vous n'avez pas à vérifier dans le dossier du package si vous le souhaitez. (Surtout si vous utilisez des DVCS)
Découvrez ce: à l'Aide de NuGet Sans la validation des paquets de contrôle de code source
http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages
Ce post est devenu très désuet. La réponse est encore NON, mais la solution a changé.
Comme de NuGet 2.7+, vous pouvez activer la commande automatique de paquet de la restauration sans y compris le NuGet.exe fichier dans votre code source (ce n'est pas souhaitable pour dire le moins) et si vous utiliser tous les DVCS vous pouvez ignorer le dossier packages. Si vous avez besoin de toute spéciale les personnalisations que vous pouvez créer un nuget.fichier de config à la solution de la racine.
http://docs.nuget.org/docs/reference/package-restore
Aussi, avec la nouvelle csproj format que vous pouvez éviter les extra nuget.les fichiers de configuration ainsi puisque c'est intégré maintenant. S'il vous plaît consulter cet article qui explique que mieux:
Le devrait .nuget dossier sera ajouté à la version de contrôle?