90 votes

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

Mon équipe a été à l'aide de l'Activer Forfait option de Restauration depuis Nuget 1,5 à garder les emballages hors de notre contrôle de code source. Lorsque Nuget 1.6 a été publié, nous avons remarqué un problème où il n'était pas en tirant les paquets vers le bas, et un suivi jusqu'à la Nuget.exe dans l' .nuget dossier nécessaire à la mise à jour 1.6 pour correspondre le Gestionnaire de Paquet.

Quelle est la meilleure façon de mettre à jour une solution, une fois Nuget a été udpated? Je ne vois pas un moyen facile de studio pour savoir quelle version de nuget est dans le dossier de la solution. Jusqu'à présent, nous souffler la .nuget dossier et exécutez de nouveau l'Activer Paquet de commande de Restauration.

145voto

Alexandre Dion Points 4567

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

nuget.exe update -self

[EDIT] : Fermer VS tout d'abord la Solution. Si il y a une mise à jour et la solution est ouvert, nuget.exe sera retiré de la solution.

Vous pourriez mettre à jour automatiquement nuget.exe sur restaurer par la modification de l' .nuget\nuget.objectifs pour ajouter la commande ci-dessus. Je regarderais la commande de restauration là comme un exemple. Mais je ne sais pas si ça vaut le coup, nuget.exe les mises à jour ne sont pas communs, et la compatibilité descendante devrait casser très rarement.

31voto

Chris Kirby Points 460

J'ai trouvé la meilleure façon de gérer cela est par la simple suppression de l' .nuget dossier et re-permettant solution à l'échelle paquet de restauration. Comme dit ci-dessus, vous pouvez ajouter une auto commande de mise à jour de votre construction, mais qui ne mettra pas à jour les cibles ou les fichiers de config si il y a des changements entre les versions (ou de supprimer la référence à partir de votre solution). Peut-être pas que les grandes d'un accord, mais c'est le sûr moyen de assurez-vous d'avoir la dernière exe et les fichiers de configuration. Et à la fin de la journée, la mise à jour est seulement un problème si vous avez besoin d'accéder à une nouvelle commande ou il y a éventuellement une modification de rupture dans une nouvelle version.

-3voto

rbrock Points 1423

Voir le post de David Ebbo sur son blog

Fondamentalement, il suffit de créer un fichier NuGet.Config à côté de votre fichier .sln, contenant:

 <?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <clear/>
    <add key="nuget.org" value="https://www.nuget.org/api/v2/" />
    <add key="aspnetwebstacknightlyrelease" value="https://www.myget.org/f/aspnetwebstacknightlyrelease/" />
  </packageSources>
</configuration>
 

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