2015-09-02 8 views
28

Ich habe eine VS-Lösung und als Teil eines TeamCity-Builds stellen wir Pakete aus einem privaten NuGet-Feed (myget) und dem öffentlichen Feed (nuget.org) wieder her. Die meisten Pakete werden ordnungsgemäß wiederhergestellt, aber sie hängen an den folgenden für WebApi und Mono.Security. Dies funktioniert alles lokal in Visual Studio.Nuget Wiederherstellung über Build-Server "Version nicht finden"

[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 

Teamcity config: enter image description here

+0

haben Sie die private Quelle zu den Nuget.targets hinzugefügt? https://docs.nuget.org/consume/package-restore – Tony

Antwort

30

Versuchen https://www.nuget.org/api/v2 statt https://api.nuget.org/v3/index.json pro den nuget docs mit: https://docs.nuget.org/consume/Command-Line-Reference.

+1

Funktioniert für mich wieder, wenn ich von v2 auf v3 umstelle. Danke für den Hinweis. – timmkrause

+1

Oder aktualisieren Sie die Datei nuget.exe, standardmäßig wird die neue URL verwendet. – xmedeko

+2

Ich hatte Probleme, einen _new_ privaten NuGet-Feed mit einer _old_-Version von 'NuGet.exe' zu ​​verwenden. Um das zu beheben, öffne eine Eingabeaufforderung, 'cd' zu deinem' .nuget'-Ordner, und führe '. \ NuGet.exe update -self' aus. – Phil

2

Der Grund, warum der Build fehlschlug, war eine alte Version von nuget.exe. Ich habe dieses Problem schließlich gelöst, indem ich die neueste Version heruntergeladen habe und diese ausführbare Datei in den Ordner "Programme x86" gestellt habe. Dann habe ich ein neues Systemvariabel erstellt, um auf diese ausführbare Datei zu zeigen. Danach füge ich ein NuGetInstaller-Paket in meine TFS-Build-Definition ein, damit ich TFS mit dieser neuen NuGet.exe konfigurieren kann. This link helped me to let TFS use this new NuGet version

0

Ich folgte: https://blogs.msdn.microsoft.com/tfssetup/2017/04/18/tfs-2017-update-1-nuget-restore-task-always-fails-trying-to-find-packages-even-though-they-exist-on-the-feed/

I 3.3 versucht hatte, und habe diesen Fehler:

Restoring NuGet package Microsoft.AspNet.WebPages.3.2.3. WARNING: Unable to find version '3.5.0.2' of package 'Antlr'.

ich die neueste NuGet 4.3.0.4406 heruntergeladen und den benutzerdefinierten Pfad zu NuGet gesetzt und das scheiterte als Gut.

Überraschenderweise, als ich zu 3.5 wechselte, funktionierte es.

enter image description here

Wenn Sie wirklich stecken sind, den Befehl in eine Befehlszeile Prompt und es wird funktionieren:

C:\Program Files (x86)\NuGet\nuget.exe restore -NonInteractive E:\agentXYZPool\_work\1\s\xyz.sln 
0

ich in dieses Problem lief mit einem unserer Build Sklaven TFS nutzen und Visual Studio

So wie ich regelte es war, öffnete ich die Lösung, die nicht in Visual Studio, Rechtsklick auf die SLN und ausgewählte „Restore aktivieren NuGet Packages“

kompilieren, die ein Dialogfeld aufgefordert, die Sie haben akzeptieren. Nachdem du das getan hast, kannst du gut gehen. Klicken Sie erneut mit der rechten Maustaste auf den SLN und führen Sie "NuGet-Pakete wiederherstellen" aus. Wenn dieser Vorgang erfolgreich ist, sind Sie golden.

Es gibt wahrscheinlich einige Einstellungen, die Sie beim Einrichten Ihrer Slave-Umgebungen programmatisch anpassen können, aber das ist ein direkter Weg, um diese Art von Problem zu beheben.

Verwandte Themen