2015-09-07 4 views
16

Ich habe Probleme mit NuGet Paket während eines TFS 2015„Unable Version zu finden“ während TFS 2015 bauen, wenn NuGet Pakete Wiederherstellung

bauen Wiederherstellung Da einige Pakete NuGet 3.x-Client benötigen, ich konfiguriert haben der neue skriptfähige Build, um einen benutzerdefinierten NuGet-Speicherort zu verwenden, in den ich die ausführbare Datei NuGet Command-Line 3.x Beta platziert habe.

Jedes Mal, wenn ich einen Build ausführen, können alle Pakete nicht gestellt werden und NuGet führt die "Unable Version finden ..." Fehler:

Unable to find version '1.1.10' of package 'Microsoft.Bcl'. 
Unable to find version '4.0.10' of package 'System.Threading'. 
Unable to find version '1.1.37' of package 'System.Collections.Immutable'. 
Unable to find version '1.0.0' of package 'Owin'. 
Unable to find version '4.1.0' of package 'NLog'. 
Unable to find version '7.0.1' of package 'Newtonsoft.Json'. 
Unable to find version '2.0.1' of package 'MongoDB.Driver.Core'. 
Unable to find version '2.0.1' of package 'MongoDB.Driver'. 
Unable to find version '2.0.1' of package 'MongoDB.Bson'. 
Unable to find version '3.0.1' of package 'Microsoft.Owin.Security.OAuth'. 

... und noch mehr Pakete. Ich glaube, das Problem ist klar.

Wenn ich die gleiche Lösung in der Erstellungsmaschine mit Visual Studio erstellen, werden alle Pakete erfolgreich wiederhergestellt.

Wie löse ich das?

+0

Haben Sie eine der Microsoft.CodeAnalysis NuGet Pakete installiert?Ich habe und ich fing an, diese Fehler zu bekommen, als ich alle von denen entfernte, dann fing es wieder an zu arbeiten. – Schenz

+0

@Schenz Ich habe dieses NuGet-Paket nicht –

Antwort

21

In meinem Fall war das Problem, dass Benutzer weite NuGet.config bei C:\Users\[User name]\AppData\Roaming\NuGet\NuGet.config gelegen (wo [User name] der Benutzer, der den Build-Agenten Windows Dienst läuft) zeigte auf NuGet API v2 while my build is already using NuGet Command-Line 3.x.

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <packageSources> 
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" /> 
    <!-- CHANGING V2 TO V3 IN THE URI VALUE SOLVED THE ISSUE! --> 
    <add key="nuget.org" value="https://www.nuget.org/api/v3/" /> 
    </packageSources> 
</configuration> 
+0

Ich hatte ein ähnliches Problem, aber nur bei der Installation eines Pakets über die Package Manager Console; Der Paket-Manager-Dialog hat gut funktioniert. Diese Antwort wies mich in die richtige Richtung: Es war die URL der Paketquelle. In meinem Fall hatte die URL in Nuget.config "https://www.nuget.org/api/v2/" gesagt. Als ich das "www" entfernte, um es zu "https://nuget.org/api/v2/" zu ändern, funktionierte es. –

+5

https://www.nuget.org/api/v3/ - Dieser Ort existiert nicht (https://api.nuget.org/v3/index.json) ... und die beiden hier definierten Schlüssel Beide haben die gleiche ID ("nuget.org") – CJBS

+0

In meinem Fall wurde die 3. Version bereits in der Konfiguration angegeben. Ich habe gerade den ganzen Inhalt der Konfigurationsdatei entfernt und es half: David

3

In meinem Fall die Nuget.Config war in:

C:\Windows\ServiceProfiles\NetworkService\AppData\Roaming\NuGet 

Also für Nuget.Config in Ihrem C:\ suchen.

Der Benutzer hängt von dem Konto, das Sie die Agent konfiguriert

-1

Sicherstellen, dass die Paketquelle aktiviert ist ...

Gehen Sie zu Extras -> NuGet Package Manager -> Package Manager Einstellungen

Dann klicken Sie auf "Paketquellen" und stellen Sie sicher, dass das Paket überprüft wird.

enter image description here

+1

aber wir sprechen über eine TFS Build –

+0

Are alle Pakete in TFS eingecheckt? – Zenacity

+0

Yup !!!!!!!!!!!! –

1

aus irgendeinem Grund Wenn die NuGet.config im Roaming-Ordner zu aktualisieren ist keine Option oder unerwünscht ist, ist es auch möglich, die Konfigurationsdatei zu der Lösung root hinzuzufügen.

Nach der Dokumentation:

  • Projektspezifische NuGet.Config Dateien in einem beliebigen Ordner aus der Lösung Ordnern bis zum Laufwerk Wurzel. Diese ermöglichen die Steuerung von Einstellungen, die für ein Projekt oder eine Gruppe von Projekten gelten.
  • Eine lösungsspezifische NuGet.Config-Datei in einem .nuget-Ordner in der Lösung. Einstellungen in dieser Datei gelten nur für lösungsweite Pakete und werden nur in NuGet 3.3 und früheren Versionen unterstützt. Es wird für NuGet 3.4 und höher ignoriert.

Config file locations and uses

+0

Schöne Ergänzung. Es scheint, als ob das Problem viele Problemumgehungen/Lösungen je nach Fall hat! –

Verwandte Themen