15 Stimmen

Problem bei der Deinstallation von NuGet-Paketen

Ich versuche, einige von NuGet installierte Pakete zu deinstallieren. Laut dem Dokument beschrieben ici sollte ich eine Deinstallieren Sie (erster Screenshot unten), wenn ich das installierte Paket auswähle. Ich sehe jedoch nur ein Verwalten Sie Schaltfläche (zweiter Screenshot unten). Kann mir bitte jemand sagen, wie ich die Pakete deinstallieren kann?

NuGet Doc Screenshot

My Screenshot

13voto

Matt Ward Punkte 45429

Wenn Sie nach unten scrollen, um die Installierte Pakete verwalten Abschnitt der NuGet-Dokumentationsseite, auf die Sie verlinkt haben, finden Sie die Schaltfläche Verwalten und eine Erklärung dazu.

Unter NuGet 1.4 wurde eine neue Funktion eingeführt, mit der Sie die Lösung im Projektmappen-Explorer auswählen und Pakete aus mehreren Projekten in einem Schritt hinzufügen/entfernen können. Zuvor mussten Sie jedes Projekt im Projektmappen-Explorer auswählen und das Paket aus jedem Projekt einzeln hinzufügen/entfernen.

Wenn Sie auf die Schaltfläche Verwalten klicken, wird ein Dialogfeld Projekte auswählen angezeigt, in dem Sie die Projekte, aus denen das NuGet-Paket deinstalliert werden soll, abwählen können.

enter image description here

Wenn Sie im Projektmappen-Explorer das Projekt statt der Projektmappe auswählen, können Sie Pakete aus dem ausgewählten Projekt hinzufügen/entfernen. In diesem Fall sehen Sie nur die Schaltflächen Installieren und Deinstallieren.

13voto

StarCub Punkte 3883

Schließlich stellte ich fest, dass ich die .sln-Lösungsdatei manuell bearbeiten und diese Zeilen entfernen musste:

GlobalSection(ExtensibilityGlobals) = postSolution
        EnterpriseLibraryConfigurationToolBinariesPath = packages\Unity.2.1.505.0\lib\NET35;packages\Unity.Interception.2.1.505.0\lib\NET35;packages\EnterpriseLibrary.Common.5.0.505.0\lib\NET35;packages\EnterpriseLibrary.Data.5.0.505.0\lib\NET35
EndGlobalSection

Nachdem ich die oben genannten Zeilen in der Lösungsdatei entfernt habe, sind diese Pakete auf der Seite "Installierte Pakete" im NuGet-Paketfenster verschwunden. Es gibt nur noch ein Paket, und ich kann jetzt die Schaltfläche "Deinstallieren" sehen.

enter image description here

EDITAR: Ich musste auch den Ordner packages in meinem Lösungsverzeichnis löschen.

8voto

JotaBe Punkte 36281

Manchmal gibt es Abhängigkeiten, die die Deinstallation eines Pakets nicht zulassen, aber Sie müssen dies trotzdem tun (z.B. wenn Sie versehentlich zwei verschiedene Versionen eines Pakets mit Abhängigkeiten installieren).

In diesem Fall besteht die einzige Möglichkeit, die Deinstallation der Pakete zu erzwingen, und dies kann nur über die Paketverwaltungskonsole erfolgen.

Bevor Sie zur Konsole gehen, sollten Sie das Fenster NuGet-Pakete verwalten öffnen und sich die Id und Version Ihres Pakets notieren, die im rechten Fensterbereich angezeigt werden, wenn Sie auf das Paket klicken.

Dann können Sie das Fenster Verwalten schließen und die Konsole (Paketmanager-Konsole) öffnen und diesen Befehl ausführen:

uninstall-package -Id YourPackageId -Force -Version YourPackageVersion

Beachten Sie die -Force Parameter. Zum Beispiel

uninstall-package -Id Unity -Force -Version 3.0.1304.0

Mit diesem Befehl kann die Version 3 deinstalliert werden, wenn sie parallel zu Version 2 installiert ist, was über das Fenster Verwalten nicht möglich ist.

4voto

bgx Punkte 681

Ich hatte kürzlich ähnliche Probleme. Mein Projekt funktionierte einwandfrei, aber ich konnte keine Pakete mehr über den NuGet-Paketmanager hinzufügen oder entfernen, da EnterpriseLibrary 5.0.505 als fehlend in der Quelle angezeigt wurde. Der Versuch, es entweder wiederherzustellen oder zu löschen, schlug mit der Fehlermeldung "Version '5.0.505. des Pakets 'EnterpriseLibrary' kann nicht gefunden werden" fehl.

Ich habe dies auf den folgenden Verweis in der Datei packages.config zurückgeführt:

<package id="EnterpriseLibrary" version="5.0.505" targetFramework="net4" />

Im Vergleich zu anderen Lösungen, denen ich das Paket erst kürzlich hinzugefügt habe, habe ich es wie folgt geändert, wodurch das Problem behoben wurde:

<package id="EnterpriseLibrary.Common" version="5.0.505.0" targetFramework="net4" />

Ich habe nie eine package.config-Datei manuell bearbeitet, daher weiß ich nicht, wie es zu der Abweichung kam. Vielleicht hat sich der Verweis geändert, seit ich das Paket ursprünglich eingebunden habe, ohne die Konfigurationsdatei zu aktualisieren?

0voto

Egon Punkte 1

Ich hatte ein Problem beim Entfernen der Code first lib CTP5, die Abhängigkeiten hatte, die Deinstallation gab keine Meldung zurück und entfernte nichts. Löschen Sie die Referenzen aus der packages.config, die Sie entfernen müssen. Danach wird es nicht mehr in Nuget angezeigt und Sie können neu installieren oder ohne fortfahren.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X