it-swarm.com.de

Nuget Restore über Build Server "Version konnte nicht gefunden werden"

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 können problemlos wiederhergestellt werden, hängen jedoch für WebApi und Mono.Security von den unten aufgeführten ab. Dies funktioniert alles lokal in 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

Teamcity-Konfiguration:  enter image description here

30
Chris Kooken

Versuchen Sie es mit https://www.nuget.org/api/v2 anstelle von https://api.nuget.org/v3/index.json in den Nuget-Dokumenten: https://docs.nuget.org/consume/Command-Line-Reference .

34
rarrarrarrr

Der Grund, warum der Build fehlgeschlagen ist, war eine alte Version von nuget.exe. Ich habe dieses Problem endlich gelöst, indem ich die neueste Version heruntergeladen und diese ausführbare Datei in den Ordner Program Files x86 gestellt habe. Dann habe ich eine neue Systemvariable erstellt, die auf diese ausführbare Datei verweist. Danach füge ich ein NuGetInstaller-Paket in meiner TFS-Build-Definition hinzu, damit ich TFS mit dieser neuen NuGet.exe konfigurieren kann. Dieser Link hat mir geholfen, dass TFS diese neue NuGet-Version verwendet

3
Marcel Beeker

Ich bin auf dieses Problem gestoßen, als einer unserer Build-Slaves TFS und Visual Studio nutzte.

So wie ich das Problem behoben habe, habe ich die Lösung geöffnet, die in Visual Studio nicht kompiliert wurde. Klicken Sie mit der rechten Maustaste auf den SLN und wählen Sie "Enable Restore NuGet Packages"

Daraufhin wird ein Dialogfeld angezeigt, das Sie akzeptieren müssen. Nachdem Sie das getan haben, können Sie gut sein. Klicken Sie erneut mit der rechten Maustaste auf den SLN, und führen Sie "Restore NuGet Packages" aus. Wenn der Vorgang erfolgreich ist, sind Sie Gold.

Möglicherweise gibt es einige Einstellungen, die Sie programmgesteuert anpassen können, wenn Sie Ihre Slave-Umgebungen einrichten. Dies ist jedoch eine direkte Möglichkeit, dieses Problem zu beheben.

0

Ich folgte dem: https://blogs.msdn.Microsoft.com/tfssetup/2017/04/18/tfs-2017-update-1-nuget-restore-task-always-fails-trying-to-find- Pakete, auch wenn sie vorhanden sind, auf dem Feed/

Ich hatte 3.3 versucht und bekam diesen Fehler:

Wiederherstellen des NuGet-Pakets Microsoft.AspNet.WebPages.3.2.3 . WARNUNG: Version '3.5.0.2' des Pakets 'Antlr' konnte nicht gefunden werden.

Ich habe die neueste Version von NuGet 4.3.0.4406 heruntergeladen und den benutzerdefinierten Pfad auf NuGet gesetzt. Auch dies ist fehlgeschlagen. 

Überraschenderweise funktionierte es, als ich auf 3.5 umstellte.

 enter image description here

Wenn Sie wirklich nicht weiterkommen, führen Sie den Befehl in einer Eingabeaufforderung aus, und es funktioniert:

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

Laut THIS aktuellem Dokument zum Zeitpunkt dieses Schreibens von MS lautet die richtige URL: https://api.nuget.org/v3/ index.json

Also habe ich das Problem behoben, weil ich davon ausgegangen bin, dass es nichts mit der URL zu tun hat. Ich habe 2 Dinge getan, nicht sicher, was das Problem behoben hat, aber ich werde beide hier posten, falls es jemandem hilft.

  • In TFS2018 und in meinem Build-Schritt für die Installation von Nuget habe ich Version 4.9.3 angegeben (der Grund, warum ich mich für 4.9.3 entschieden habe, weil ich anhand eines detaillierten Protokolls von VS festgestellt habe, dass diese Version bei meinem Build verwendet wurde) Laden Sie die neueste Version herunter.

  • Als zweites habe ich eine Nuget.Config-Datei aus meinem Projekt entfernt, die von etwas übrig geblieben ist, das ich gerade getestet habe. Dann habe ich meine Änderungen erneut in TFS übernommen

Nachdem ich beide oben genannten Schritte ausgeführt hatte, begann der Rest meines Builds zu funktionieren.

0
Helzgate