J'ai une solution VS et dans le cadre d'une TeamCity Build, nous restaurons les packages à partir d'un flux privé NuGet (myget) et du flux public (nuget.org). La plupart des paquets sont restaurés sans problème, mais ils s’appliquent à ceux ci-dessous pour WebApi et Mono.Security. Tout cela fonctionne localement dans Visual Studio.
[restore] NuGet command: C:\TeamCity\buildAgent\plugins\nuget-agent\bin\JetBrains.TeamCity.NuGetRunner.exe C:\TeamCity\buildAgent\tools\NuGet.CommandLine.DEFAULT.nupkg\tools\NuGet.exe restore C:\TeamCity\buildAgent\work\953bd084b49f7d88\DataFinch.Web.sln -Source https://www.myget.org/F/datafinch/auth/<hidden>/api/v2 -Source https://api.nuget.org/v3/index.json
[11:41:35][restore] Starting: C:\TeamCity\buildAgent\temp\agentTmp\custom_script473789219385667038.cmd
[11:41:35][restore] in directory: C:\TeamCity\buildAgent\work\953bd084b49f7d88
[11:41:35][restore] JetBrains TeamCity NuGet Runner 8.0.37059.9
[11:41:35][restore] Registered additional extensions from paths: C:\TeamCity\buildAgent\plugins\nuget-agent\bin\plugins-2.8
[11:41:35][restore] Starting NuGet.exe 2.8.50926.602 from C:\TeamCity\buildAgent\tools\NuGet.CommandLine.DEFAULT.nupkg\tools\NuGet.exe
[11:41:43][restore] Unable to find version '5.2.3' of package 'Microsoft.AspNet.WebApi.Client'.
[11:41:43][restore] Unable to find version '5.2.3' of package 'Microsoft.AspNet.WebApi.Core'.
[11:41:43][restore] Unable to find version '3.2.3.0' of package 'Mono.Security'.
[11:41:43][restore] Unable to find version '6.0.4' of package 'Newtonsoft.Json'.
[11:41:43][restore] Process exited with code 1
Essayez d’utiliser https://www.nuget.org/api/v2
au lieu de https://api.nuget.org/v3/index.json
dans la documentation du nuget: https://docs.nuget.org/consume/Command-Line-Reference .
La raison pour laquelle la construction a échoué est une ancienne version de nuget.exe. J'ai finalement résolu ce problème en téléchargeant la dernière version et en plaçant cet exécutable dans le dossier Program Files x86. Ensuite, j'ai créé une nouvelle variable système pour pointer sur cet exécutable. Après cela, j’ajoute un paquet NuGetInstaller dans ma définition de construction TFS pour me permettre de configurer TFS à l’aide de ce nouveau NuGet.exe. Ce lien m'a aidé à laisser TFS utiliser cette nouvelle version de NuGet
J'ai rencontré ce problème avec l'un de nos esclaves de génération utilisant TFS et Visual Studio.
Comme je l'ai réglé, j'ai ouvert la solution qui n'était pas compilée dans Visual Studio, cliqué avec le bouton droit sur le SLN et sélectionné "Activer la restauration des packages NuGet".
Cela invite une boîte de dialogue que vous devez accepter. Une fois que vous avez fait cela, vous serez peut-être prêt à partir. Cliquez à nouveau avec le bouton droit de la souris sur le SLN et exécutez «Restore NuGet Packages» (Restaurer les paquets NuGet). Si l'opération réussit, vous êtes en or.
Vous pouvez probablement ajuster certains paramètres par programmation lors de la configuration de vos environnements d'esclaves, mais c'est un moyen direct de résoudre ce type de problème.
J'avais essayé 3.3 et j'ai eu cette erreur:
Restauration du package NuGet Microsoft.AspNet.WebPages.3.2.3 . AVERTISSEMENT: Impossible de trouver la version '3.5.0.2' du package 'Antlr'.
J'ai téléchargé la dernière version de NuGet 4.3.0.4406 et défini le chemin d'accès personnalisé à NuGet, ce qui a également échoué.
Étonnamment, lorsque je suis passé à la version 3.5, cela a fonctionné.
Si vous êtes vraiment bloqué, exécutez la commande dans une invite de ligne de commande et cela fonctionnera:
C:\Program Files (x86)\NuGet\nuget.exe restore -NonInteractive E:\agentXYZPool\_work\1\s\xyz.sln