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 utilise l’option Enable Package Restore depuis Nuget 1.5 pour garder les paquets hors de notre contrôle source. Lorsque Nuget 1.6 a été publié, nous avons remarqué un problème où il ne tirait pas les paquets vers le Nuget.exe dans le dossier .nuget nécessaire pour mettre à jour à 1.6 pour correspondre au Gestionnaire de packages.

Quelle est la meilleure façon de mettre à jour une solution une fois que Nuget a été modifié? Je ne vois pas de solution simple en studio pour savoir quelle version de nuget se trouve dans le dossier de la solution. Jusqu’à présent, nous avons supprimé le dossier .nuget et ré-exécuté la commande Enable Package Restore.

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

    nuget.exe update -self 

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

    Vous pouvez automatiquement mettre à jour nuget.exe lors de la restauration en modifiant le fichier .nuget \ nuget.targets pour append 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 nuget.exe ne sont pas si courantes et la compatibilité descendante devrait être très rare.

    J’ai trouvé le meilleur moyen de gérer cela en supprimant simplement le dossier .nuget et en réactivant la restauration de package à l’échelle de la solution. Comme indiqué ci-dessus, vous pouvez append une commande de mise à jour automatique à votre version, 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). Peut-être ce n’est pas une grosse affaire, mais c’est le moyen sûr de vous assurer que vous avez les derniers fichiers exe et de configuration. Et au bout du compte, la mise à jour n’est un problème que si vous avez besoin d’accéder à une nouvelle commande ou si une nouvelle version est éventuellement modifiée.

    Voir le post de David Ebbo sur son blog

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