web-dev-qa-db-fra.com

Existe-t-il un moyen de mettre à jour automatiquement nuget.exe dans le dossier .nuget lors de l'utilisation de la restauration de packages?

Mon équipe utilise l'option Activer la restauration des packages depuis Nuget 1.5 pour garder les packages hors de notre contrôle de source. Lorsque Nuget 1.6 a été publié, nous avons remarqué un problème où il ne tirait pas les packages vers le bas, et l'avons suivi jusqu'au Nuget.exe dans le dossier .nuget nécessaire pour mettre à jour vers 1.6 pour correspondre au gestionnaire de packages.

Quelle est la meilleure façon de mettre à jour une solution une fois Nuget mis à jour? Je ne vois pas de moyen simple depuis le studio pour dire quelle version de nuget se trouve dans le dossier de la solution. Jusqu'à présent, nous supprimons le dossier .nuget et réexécutons la commande Enable Package Restore.

89
Rick

Je suggère de mettre à jour .nuget\nuget.exe avec cette commande à partir de la ligne de commande:

nuget.exe update -self

[EDIT]: Fermez VS Solution en premier. S'il y a une mise à jour et que la solution est ouverte, nuget.exe sera supprimé de la solution.

Vous pourriez mettre automatiquement à jour nuget.exe lors de la restauration en modifiant le fichier .nuget\nuget.targets pour ajouter la commande ci-dessus. Je regarderais la commande de restauration ici comme exemple. Mais je ne suis pas sûr que cela en vaille la peine, les mises à jour de nuget.exe ne sont pas si courantes et la rétrocompatibilité devrait se rompre très rarement.

143
Alexandre Dion

J'ai trouvé la meilleure façon de gérer cela en supprimant simplement le dossier .nuget et en réactivant la restauration du package à l'échelle de la solution. Comme indiqué ci-dessus, vous pouvez ajouter une commande de mise à jour automatique à votre build, mais cela ne mettra pas à jour les cibles ou les fichiers de configuration s'il y a des changements entre les versions (ou supprimez la référence de votre solution). Ce n'est peut-être pas si grave, mais c'est le moyen sûr de vous assurer que vous disposez des derniers fichiers exe et de configuration. Et à la fin de la journée, la mise à jour n'est un problème que si vous avez besoin d'accéder à une nouvelle commande ou s'il y a finalement un changement de rupture dans une nouvelle version.

31
Chris Kirby