web-dev-qa-db-de.com

Nuget-Wiederherstellung schlägt in Azure Devops mit der Meldung fehl, dass der Serviceindex für Quelle nicht geladen werden kann.

Ich habe einen Build für eine .NET-Lösung, die in einem privaten Agenten ausgeführt wird. Die Lösung enthält sowohl .NET Core 2.1- als auch .NET Standard 2.0-Projekte. 

Einige der installierten Nuget-Pakete sind folgende:

  • NETStandard.Library v2.0.3
  • Microsoft.AspNetCore.Mvc v2.0.0
  • Microsoft.NETCore.App v2.1.5

Die Erstellung schlägt fehl, wenn Sie versuchen, die Nuget-Pakete mit dem folgenden Fehler wiederherzustellen: 

"F:\Agent01\w\141\s\xxxxxxx.sln" (Wiederherstellungsziel) (1) -> (Ziel wiederherstellen) -> C:\Programme\dotnet\sdk\2.1.500\NuGet.targets (114,5): Fehler: Fehler beim Laden des Serviceindex für source https://xxxxxxxxxx.pkgs.visualstudio.com/_packaging/xxxxxxxxxx /nuget/v3/index.json . C:\Programme\dotnet\sdk\2.1.500\NuGet.targets (114,5): Fehler: Der Antwortstatuscode gibt keinen Erfolg an: 401 (nicht autorisiert).

Bauaufgabe ist folgende:

 Nuget restore build task

Dies ist der Inhalt der %appdata%\NuGet\nuget.config-Datei im Build-Agent:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
    <add key="MyFeed" value="https://xxxxxxxxxx.pkgs.visualstudio.com/_packaging/xxxxxxxxxx/nuget/v3/index.json" />
  </packageSources>
  <packageSourceCredentials>
    <MyFeed>
      <add key="Username" value="LocalBuildAgent" />
      <add key="ClearTextPassword" value="xxxxxxxxxxx" />
    </MyFeed>
  </packageSourceCredentials>
</configuration>

Ich habe bereits ein paar ähnliche Fragen geprüft, konnte aber bisher keine Lösung für mein Problem finden. 

Einige Notizen:

  • Das persönliche Zugangs-Token ist NICHT abgelaufen
  • Dieser bestimmte Build wird erfolgreich in anderen Build-Agents ausgeführt
  • Es ist mindestens ein Build mit einer Aufgabe "Nuget Restore" vorhanden, die mit diesem Agenten erfolgreich ausgeführt wurde (reguläre Nuget Restore Task, NICHT .NET Core.
  • Es wurde versucht, den Build-Agent ohne Erfolg neu zu starten
  • Versuchte Angabe einer bestimmten Version von Nuget vor der Wiederherstellung, ohne Erfolg
  • Die neueste Version des .NET Core SDK im Build-Agent ist 2.1.500 (mehrere Versionen sind installiert).

Was vermisse ich? Wie kann dieses Problem behoben werden? Warum kann ich die Pakete nicht mit dem Befehl dotnet restore wiederherstellen?

AKTUALISIEREN:

Pakete werden ohne Fehler wiederhergestellt, wenn die Aufgabe alt _ ​​Nuget Restore wie folgt verwendet wird: 

 Build definition

UPDATE 2:

Ich kann die Pakete mithilfe der .NET Core-Task v1 wiederherstellen:

 Screenshot - restore packages using the .NET Core task v1

Oder verwenden Sie die v2-Task mit dem Argument --force:

 Screenshot - restore packages using --force

5
Rui Jarimba

Ich habe eine Lösung gefunden - fügen Sie die folgende Paketquelle zu %appdata%\NuGet\nuget.config hinzu:

<add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" />

Die vollständige Datei sieht folgendermaßen aus:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="Microsoft Visual Studio Offline Packages" value="C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\" />
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" />
    <add key="MyFeed" value="https://xxxxxxxxxx.pkgs.visualstudio.com/_packaging/xxxxxxxxxx/nuget/v3/index.json" />
  </packageSources>
  <packageSourceCredentials>
    <MyFeed>
      <add key="Username" value="LocalBuildAgent" />
      <add key="ClearTextPassword" value="xxxxxxxxxxx" />
    </MyFeed>
  </packageSourceCredentials>
</configuration>

Überprüfen Sie auch Regression in .NET SDK 500: 'dotnet tool install' schlägt mit 401 (Unauthorized) fehl, wenn in NuGet.config # 7524 ein privater Feed vorhanden ist. Dieses Problem scheint von .NET SDK 2.1.500 verursacht zu sein.

Eine andere Problemumgehung wäre die Deinstallation dieser Version:

Das Problem ist in .NET Core SDK 2.1.400 nicht vorhanden, z. es geht weg Wenn .NET Core SDK 2.1.500 deinstalliert wird, wird es erneut angezeigt, wenn SDK 2.1.500 wird erneut installiert.

3
Rui Jarimba

Ich musste den Nuget-Installer auf 4.8.1 ändern, damit dies funktioniert, nachdem die VSTS-URL auf die neue Azure Devops-URL umgestellt wurde.

 enter image description here

0
cal5barton

Mit der neuesten Task "Use .NET Core sdk 2.1.504" wurde für mich gearbeitet . Es gibt anscheinend einige fehlerhafte Versionen von .NET Core sdk 2.1.5xx.

0
Andrel Vahter