Quelle nicht erreichbar, wenn die NuGet Package Manager-Konsole verwendet wird

153

Wir verlagern unsere Paketverwaltung von der manuellen Aktualisierung von Dateien auf NuGet. Ich versuche, ältere Versionen von Paketen so zu installieren, dass sie mit denen übereinstimmen, die wir bereits in der Quellcodeverwaltung haben. Es gibt keine Möglichkeit, dies über die Benutzeroberfläche zu tun, daher verwende ich die Befehlszeile, um die richtige Version zu erhalten.

Aus irgendeinem Grund Install-Packagesagt er mir immer wieder, dass die Nuget-Galerie nicht erreichbar ist.

Die Quelle unter nuget.org [ https://www.nuget.org/api/v2/] ist nicht erreichbar. Zurückgreifen auf den lokalen NuGet-Cache

Dies geschieht nur in einer unserer Lösungen. Wenn ich eine neue Lösung erstelle oder eine andere im selben Repository verwende, werden die Pakete wie erwartet installiert. Ich kann die Pakete sogar in einer Dummy-Lösung installieren, um den lokalen Cache zu füllen, und sie dann erfolgreich in der fehlerhaften Lösung installieren. Ich habe versucht, Invoke-WebRequestauf die URL von der NuGet-Konsole zuzugreifen, und ich erhalte ein HTTP 200.

Was kann das verursachen? Gibt es eine Möglichkeit, die Paketquellen pro Lösung / Projekt zu überschreiben?

Etienne Maheu
quelle
3
Ich habe das gleiche Problem. Ich habe gestern das VS 2013 Update 2 installiert, vielleicht ist dies ein neuer Fehler ...? Übrigens kann ich jedes Paket problemlos über das Dialogfeld "NuGet-Pakete verwalten" installieren. Dieses Problem tritt nur in der Package Manager-Konsole auf.
Rsenna
2
Ich habe das gleiche Problem. Funktioniert immer im Dialogfeld "Pakete verwalten" - funktioniert nie in der Package Manager-Konsole.
David Tansey
10
Durch den Neustart von Visual Studio wurde dies für mich behoben
Chris_

Antworten:

338

Auch wenn meine Paketquelle zu nuget.org in Package Manager - Konsole festgelegt wurde, explizit das Hinzufügen -Source nuget.orgArgument für mich festgelegt.

Ein Anwendungsbeispiel wäre also:

Install-Package Akka.net -Source nuget.org

Da Akka.net Ihr Paket ist, das Sie installieren möchten, ist es hier nur ein Beispiel.

Klebeband
quelle
1
Ich habe meinen PC und Visual Studio neu gestartet. Aber das Hinzufügen von -Source nuget.org hat in der Tat den Trick für meine neue .vbproj-Instanz in meinem vorhandenen Multiprojekt .sln
bkwdesign
Wo und wie soll dieses Argument hinzugefügt werden? Können Sie bitte weitere Informationen geben.
Radenko Zec
Es hat auch bei mir funktioniert (gerade jetzt!). Ich habe versucht, eine ältere Version von jQuery zu installieren, aber es wurde immer wieder der Fehler "Die Quelle unter nuget.org [ nuget.org/api/v2/] " ausgegeben . Ich weiß allerdings nicht, wie ich das beheben soll.
Loudenvier
Danke, ich habe es so gemacht:Install-Package jQuery.UI.Combined -Source nuget.org
Shaijut
7
Haben Sie eine Idee, wie das funktioniert? Ich bin nur neugierig, da dies für mich keinen Sinn ergibt, auch wenn es funktioniert. Der Fehler besagt also, dass die Quelle unter nuget.org [ nuget.org/api/v2/] nicht erreichbar ist. Dann gebe ich dieselbe Quelle an -Source nuget.orgund es funktioniert?
Vladimirs
10

Ich musste die Standard-NuGet-Quelle in die Optionen von Visual Studio kopieren. Mit der kopierten Quelle habe ich die URL von httpsauf geändert http. Dies löste das Problem für mich.

Die Gutschrift für diesen Vorschlag gehört hier: https://nuget.codeplex.com/discussions/561075#PostDetailsCell_1354351 , zu "jpharris4".

Zarepheth
quelle
Dies ist ein sehr guter Punkt. NuGet reagiert möglicherweise empfindlich auf die Validierung von Zertifikaten.
Etienne Maheu
6

Ich bin nicht sicher, was Ihr Problem verursachen kann, aber es gibt tatsächlich eine Möglichkeit, Paketquellen auf Lösungsbasis zu überschreiben, aber nur, wenn Sie NuGet Package Restore für die angegebene Lösung aktiviert haben .

Sobald eine Lösung NuGet Package Restore aktiviert hat, wird der Lösung ein Ordner mit dem Namen ".nuget" hinzugefügt. Darunter befindet sich eine Datei mit dem Namen "NuGet.targets" mit einer ItemGroup, deren Bedingung "'$ (PackageSources)' == ''" ist, wie Sie sie im angehängten Bild sehen.

Wenn die ItemGroup leer ist (oder wie in der Abbildung vollständig auskommentiert ist), verwendet die Lösung eine bestimmte Datei, die mit den unter TOOLS >> OPTIONS aufgeführten Quellen übereinstimmen sollte. Wenn Sie jedoch PackageSource-Elemente auskommentieren oder zu dieser ItemGroup hinzufügen, durchsucht die Lösung die aufgelisteten Paketquellen und NUR die aufgelisteten.

Inhalt der Datei Nuget.targets

Omnidisziplinarist
quelle
2
In der Datei NuGet.targets definierte Paketquellen wirken sich nur auf diejenigen aus, die während der Erstellung verwendet werden, wenn ein Paket wiederhergestellt wird. Paketquellen in der Datei NuGet.config im Verzeichnis .nuget wirken sich auf die Paketquellen aus, die für ein Projekt in Visual Studio verfügbar sind.
Matt Ward
Ich habe die Paketwiederherstellung für diese Lösung aktiviert. Die ItemGroup ist genau wie in Ihrem Screenshot konfiguriert. Ich gehe davon aus, dass dies die Standardeinstellung ist. Ich glaube also nicht, dass dies das Problem ist. Die Paketwiederherstellung wurde jedoch vor sehr langer Zeit aktiviert und die Zieldatei seitdem geändert. Ich habe versucht, diese Dateien auf die neueste Version zu aktualisieren, indem ich sie löschte und die Paketwiederherstellung wieder aktivierte. Es sieht so aus, als ob das Problem dadurch behoben wurde.
Etienne Maheu
Oder nicht. Es funktionierte zunächst, aber nach dem Wiederherstellen der Pakete für die Lösung und dem Neustart von Visual Studio trat das Problem erneut auf.
Etienne Maheu
Einige klärende Fragen: 1) Haben Sie die richtigen Versionen, auf die in packages.config verwiesen wird? 2) Haben Sie bestätigt, dass die gesuchte Version noch auf dem NuGet-Server vorhanden ist ? 3) Haben Sie die Lösung gereinigt und nach Abschluss von 1) und 2) wieder aufgebaut?
Omnidisziplinarist
1
Wenn es ein Trost ist - ich bekomme dieses Problem aber nur auf meinem Arbeits-PC und es passiert bei den meisten Projekten. Das Seltsame ist, dass es zeitweise ist, was mich verrückt macht!
Matt
6

Sie können die NuGet-Quelle auch über die Benutzeroberfläche ändern. Ändern Sie einfach die NuGet-Quelle auf eine ältere Version und es sollte gut funktionieren.

Geben Sie hier die Bildbeschreibung ein

In VS 2015 scheint es immer noch wenige Fehler im Zusammenhang mit api.nuget.org (v3) zu geben.

Sameer Azazi
quelle
2

In meiner Package Manager-Konsole konnte ich keine Quellen sehen

Gehen Sie zu: Extras -> Optionen -> Nuget Package Manager -> Paketquellen

Ich habe die Quellen gefunden. Wenn Sie sie deaktivieren und erneut überprüfen, wird sie erneut in meiner Package Manager-Konsole angezeigt

user2083640
quelle
2

Ich musste das Komman zusammen mit der vollständigen URL als angeben Install-Package MySql.Data.Entity -Version 6.9.8 -Source http://www.nuget.org/api/v2

gavinfonseca
quelle
1

In meinem Fall war die Ursache, dass das Paket eine Vereinbarung hatte. Über das Dialogfeld "Benutzeroberfläche - NuGet-Pakete verwalten" haben Sie die Möglichkeit, zu akzeptieren und fortzufahren.

Die Package Manager-Konsole in VS 2013 scheint ein Problem damit zu haben. Wie andere bereits gesagt haben, kann ein Neustart von VS 2013 das Problem für die Konsole beheben.

Byron
quelle
1

Dies funktioniert für mich in VS 2015 prof: Tools -> Optionen -> Nuget Package Manager -> Paketquellen

  1. Klicken Sie auf die Schaltfläche Hinzufügen
  2. Bearbeiten Sie im Namensschild: nuget.org
  3. Bearbeiten Sie im Quelletikett: https://www.nuget.org/api/v2/
  4. drücke OK

Ich hoffe es hilft ;)

praguanisch
quelle
Für VS 2015 sollten Sie v3 ihrer Liste verwenden ... nicht v2! Entnommen von ihrer Homepage NuGet Feed v3 (VS 2015 / NuGet v3.x): api.nuget.org/v3/index.json NuGet Feed v2 (VS 2013 und früher / NuGet 2.x): nuget.org/api/v2
Paul Zahra
0

Ich hatte das gleiche Problem mit der gleichen Nachricht. Der Grund für mein Problem war jedoch, dass die Verbindung zu TFS unterbrochen wurde. Mein TFS-Server wurde in einem anderen Netzwerk gehostet und ich habe VPN für den Zugriff darauf verwendet. Als ich versuchte, das Paket ohne hergestellte Verbindung zu TFS zu installieren (VPN wurde deaktiviert), trat das gleiche Problem auf.

Beachten Sie dieses TFS-Verhalten.

RredCat
quelle
0

Geschieht, weil Sie im Offline-Modus arbeiten. Wenn Sie das Netzwerk erneut verbinden, müssen Sie sich abmelden und wieder abmelden. Der Paketmanager wird problemlos neu initialisiert.

Rakesh Pahuja
quelle
0

Ich habe dieses Problem VS2013 konfrontiert und 3 Stunden Zeit verschwendet.

Nicht sicher, was die Ursache des Problems war. Aber keine der oben genannten Lösungen hat bei mir funktioniert.

Die Neuinstallation der Nuget Package Manager-Konsole hat bei mir funktioniert.

Extras -> Erweiterungen und Updates -> Unter Alles Suchen Sie nach Nuget Package Manager für Visual Studio und klicken Sie auf Deinstallieren.

Gehen Sie zu https://marketplace.visualstudio.com/items?itemName=NuGetTeam.NuGetPackageManagerforVisualStudio2013 und laden Sie die Erweiterung herunter.

Syed Abbas
quelle
0

Geben Sie hier die Bildbeschreibung ein. Möglicherweise blockiert Ihre Büro- / Heim-Firewall nuget.org. Versuchen Sie daher, eine Verbindung zu einem anderen Internet-Netzwerk herzustellen, z. B. von Ihrem Handy oder WLAN. Ich konnte diese Methode lösen.

user1687805
quelle