Freigeben über


Verwalten von Paketen mit der Visual Studio Package Manager-Konsole (PowerShell)

Die Paket-Manager-Konsole in Visual Studio verwendet PowerShell-Befehle für die Interaktion mit NuGet-Paketen. Sie können die Konsole verwenden, wenn es keine Möglichkeit gibt, einen Vorgang über die Paket-Manager-Benutzeroberfläche auszuführen. Sie können auch die Dotnet-Befehlszeilenschnittstelle (CLI) oder NuGet CLI-Befehle in der Konsole verwenden.

In diesem Artikel wird beschrieben, wie Sie NuGet-Pakete mithilfe von PowerShell-Befehlen in der Paket-Manager-Konsole suchen, installieren, aktualisieren und deinstallieren. Die vollständige PowerShell-Befehlsübersicht der Paket-Manager-Konsole finden Sie in der PowerShell-Referenz.

Von Bedeutung

Die PowerShell-Befehle und -Argumente in diesem Artikel sind spezifisch für die Visual Studio Package Manager-Konsole. Diese Befehle unterscheiden sich von den PackageManagement-Modulbefehlen , die Sie in einer allgemeinen PowerShell-Umgebung verwenden können. Jede Umgebung verfügt über Befehle, die nicht in der anderen verfügbar sind, und Befehle mit demselben Namen können sich in ihren spezifischen Argumenten unterscheiden.

Konsolenverfügbarkeit

Ab Visual Studio 2017 werden NuGet und der NuGet-Paket-Manager automatisch installiert, wenn Sie .NET-bezogene Workloads in Visual Studio erstellen. Sie können den Paket-Manager auch mit dem Visual Studio Installer installieren. Wählen Sie im Installationsprogramm einzelne Komponenten>codetools>NuGet-Paket-Manager aus.

Sie können auch unter dem Menü "Extras>Erweiterungen und Updates" oder"Erweiterungen " in Visual Studio nach der Erweiterung "NuGet Package Manager" suchen. Wenn Sie das Erweiterungsprogramm in Visual Studio nicht verwenden können, können Sie die Erweiterung direkt von https://www.nuget.org/downloads herunterladen.

Die Paket-Manager-Konsole ist in den Paket-Manager für Visual Studio unter Windows integriert. Visual Studio Code enthält nicht die Konsole, Sie können jedoch die C#Dev Kit-Erweiterung verwenden, um NuGet-Pakete zu verwalten. Mit dieser Erweiterung können Sie Befehle im C#Dev Kit-Projektmappen-Explorer oder in der Visual Studio Code-Befehlspalette ausführen. Weitere Informationen finden Sie unter NuGet in Visual Studio Code.

Schnelles Suchen und Installieren eines Pakets

Führen Sie die folgenden Schritte aus, um mithilfe der Paket-Manager-Konsole schnell ein Paket zu finden und zu installieren:

  1. Öffnen Sie Ihr Projekt oder Ihre Projektmappe in Visual Studio, und wählen Sie Tools>NuGet-Paket-Manager>Paket-Manager-Konsole, um das Fenster der Paket-Manager-Konsole zu öffnen.

  2. Führen Sie in der Konsole den Find-Package Befehl mit einem Schlüsselwort aus, um das Paket zu finden, das Sie installieren möchten. Um beispielsweise Pakete zu finden, die Fehlerprotokollierungsmodule und -handler (ELMAH) bereitstellen, führen Sie den folgenden Befehl aus, um nach dem Schlüsselwort elmahzu suchen. Wenn Sie den gewünschten Paketnamen bereits kennen, überspringen Sie diesen Schritt.

    Find-Package elmah
    
  3. Nachdem Sie das Paket gefunden haben, führen Sie den Install-Package Befehl mit der Paket-ID aus, um das Paket zu installieren. Führen Sie beispielsweise den folgenden Befehl aus, um das Elmah.MVC Paket zu installieren:

    Install-Package Elmah.MVC
    

Weitere Informationen zu diesen Befehlen finden Sie in den Abschnitten " Suchen eines Pakets und Installieren eines Pakets" .

Tipp

Viele Konsolenvorgänge hängen davon ab, dass eine Lösung mit einem bekannten Pfadnamen in Visual Studio geöffnet ist. Wenn Sie über eine nicht gespeicherte Lösung oder keine Lösung verfügen, wird eine Fehlermeldung angezeigt, dass keine geöffnete oder gespeicherte Lösung vorhanden ist. Um den Fehler zu beheben, erstellen und speichern Sie eine Lösung, oder speichern Sie eine nicht gespeicherte Lösung.

Verwenden von Konsolensteuerungen

Um die Paket-Manager-Konsole in Visual Studio zu öffnen, gehen Sie zum oberen Menü, und wählen Sie dann Tools>NuGet-Paket-Manager>Paket-Manager-Konsole aus. Die Konsole ist ein Visual Studio-Fenster, das Sie nach Bedarf anordnen und positionieren können. Weitere Informationen finden Sie unter Anpassen von Fensterlayouts und Personalisieren von Registerkarten.

Konsolenbefehle funktionieren standardmäßig mit der spezifischen Paketquelle und dem spezifischen Projekt, die in den Steuerelementen oben im Paket-Manager-Konsolenfenster angezeigt werden:

Screenshot des Paket-Manager-Konsolenfensters. Oben sind die Listen

Wenn Sie eine andere Paketquelle oder ein anderes Projekt auswählen, werden die Standardwerte für nachfolgende Befehle geändert. Um diese Einstellungen für einzelne Befehle außer Kraft zu setzen, ohne die Standardeinstellungen zu ändern, unterstützen -Source die meisten Konsolenbefehle und -ProjectName -optionen.

Um Paketquellen zu verwalten, wählen Sie das Zahnradsymbol aus, mit dem das Dialogfeld Tools>Optionen>NuGet-Paket-Manager>Paketquellen geöffnet wird. Um den Inhalt der Konsole zu löschen, wählen Sie " Konsole löschen" neben der Standardprojektliste aus.

Screenshot des Paket-Manager-Konsolenfensters. Am oberen Rand werden zwei Symbole hervorgehoben. Eine zeigt ein Zahnrad. Die andere zeigt Ausgabelinien und ein rotes X an.

Wenn Sie einen befehl mit langer Ausführung unterbrechen möchten, wählen Sie "Befehl beenden" neben dem Symbol " Konsole löschen" aus. Die Ausführung Get-Package -ListAvailable -PageSize 500 führt beispielsweise die 500 besten verfügbaren Pakete auf der Standardquelle auf, z. B. nuget.org, was mehrere Minuten dauern kann.

Screenshot des Paket-Manager-Konsolenfensters. Am oberen Rand wird das Symbol für die Ausführung von Befehlen beenden, das wie ein rotes Quadrat aussieht, hervorgehoben.

Suchen eines Pakets

Verwenden Sie "Find-Package", um ein Paket in der Standardquelle zu finden. Die folgenden Codeblöcke zeigen Ihnen, wie Sie Parameter verwenden, um Ihre Suche zu verfeinern:

  • Suchen und Auflisten von Paketen, die ein bestimmtes Schlüsselwort enthalten:

    Find-Package <keyword>
    
  • Suchen und Auflisten von Paketen mit einer ID, die mit einer bestimmten Zeichenfolge beginnt:

    Find-Package <string> -StartWith
    
  • Anzeigen der ersten 100 Pakete, die ein bestimmtes Schlüsselwort enthalten:

    Find-Package <keyword> -First 100
    

    Gibt Find-Package standardmäßig eine Liste von 20 Paketen zurück. Wie im vorherigen Beispiel können Sie -First eine andere Anzahl von Paketen angeben.

  • Listet alle Versionen eines bestimmten Pakets auf:

    Find-Package <package-name> -AllVersions -ExactMatch
    

Installieren eines Pakets

Um ein Paket im Standardprojekt zu installieren, verwenden Sie Install-Package <package-name>. Der Konsolenbefehl „Install-Package“ führt die folgenden Aktionen aus:

  • Führt die Schritte im Abschnitt „Was passiert, wenn ein NuGet-Paket installiert wird“ aus.
  • Zeigt die anwendbaren Lizenzbedingungen im Konsolenfenster mit impliziter Vereinbarung an. Wenn Sie den Bedingungen nicht zustimmen, sollten Sie das Paket deinstallieren.
  • Fügt einen Verweis auf das Paket in der Projektdatei und im Projektmappen-Explorer unter dem Knoten "Abhängigkeiten " oder " Verweise " hinzu. Sie müssen das Projekt speichern, damit die Änderungen in die Projektdatei übertragen werden.

Standardmäßig fügt Install-Package das Paket dem im Konsolenfenster angegebenen Standardprojekt hinzu. Wenn Sie das Paket zu einem Projekt hinzufügen möchten, das nicht das Standardprojekt ist, verwenden Sie die -ProjectName Option. Führen Sie beispielsweise den folgenden Befehl aus, um das Elmah.MVC Paket zum nicht standardmäßigen UtilitiesLib Projekt hinzuzufügen:

Install-Package Elmah.MVC -ProjectName UtilitiesLib

Ein Paket deinstallieren

Um ein Paket aus dem Standardprojekt zu deinstallieren, verwenden Sie Uninstall-Package <package-name>. Wenn Sie den Paketnamen finden müssen, verwenden Sie "Get-Package ", um alle im Standardprojekt installierten Pakete auflisten zu können.

Uninstall-Package führt die folgenden Aktionen aus:

  • Entfernt Verweise auf das Paket aus dem Projekt und allen Verwaltungsformaten. Verweise werden im Projektmappen-Explorer nicht mehr angezeigt. Möglicherweise müssen Sie das Projekt neu erstellen, um den Verweis im Ordner "Bin" zu entfernen.
  • Kehrt alle Änderungen zurück, die beim Installieren des Pakets an app.config oder web.configvorgenommen wurden.
  • Entfernt zuvor installierte Abhängigkeiten, wenn keine verbleibenden Pakete diese Abhängigkeiten verwenden.

Die folgenden Codeblöcke zeigen Ihnen, wie Sie den Befehl in verschiedenen Szenarien verwenden:

  • Deinstallieren Sie ein Paket und alle ungenutzten Abhängigkeiten:

    Uninstall-Package <package-name> -RemoveDependencies
    
  • Deinstallieren Sie ein Paket, auch wenn andere Pakete davon abhängen:

    Uninstall-Package <package-name> -Force
    

Aktualisieren eines Pakets

Verwenden Sie "Update-Package", um Pakete zu aktualisieren. Sie können auch get-Package verwenden, um verfügbare Updates für installierte Pakete auflisten. Die folgenden Codeblöcke zeigen Ihnen, wie Sie Parameter zum Ändern des Aktualisierungsbereichs verwenden:

  • Überprüfen Sie, ob neuere Versionen für alle Pakete verfügbar sind, die in der Lösung installiert sind:

    Get-Package -updates
    
  • Aktualisieren eines bestimmten Pakets:

    Update-Package <package-name>
    
  • Aktualisieren aller Pakete in einem Projekt:

    Update-Package -ProjectName <project-name>
    
  • Aktualisieren aller Pakete in einer Lösung:

    Update-Package
    

Verwenden Sie die NuGet-CLI in der Konsole

Sie können auch die meisten Konsolenvorgänge mithilfe der NuGet CLI ausführen. Die PowerShell-Konsolenbefehle funktionieren jedoch im Kontext des gespeicherten Projekts und der Projektmappe von Visual Studio und führen häufig mehr als die entsprechenden NuGet CLI-Befehle aus. Das Installieren eines Pakets über Install-Package fügt beispielsweise einen Verweis auf die Projektdatei hinzu, aber der Befehl NuGet CLI nicht. Aus diesem Grund bevorzugen Entwickler, die in Visual Studio arbeiten, in der Regel die Konsolenbefehle anstelle der NuGet CLI zu verwenden.

Um NuGet CLI-Befehle in der Paket-Manager-Konsole zu verwenden, installieren Sie das NuGet.CommandLine-Paket .

Install-Package NuGet.CommandLine

Mit dem vorherigen Befehl wird die neueste Version der NuGet CLI installiert. Verwenden Sie die -Version Option, um eine bestimmte Version zu installieren. Verwenden Sie beispielsweise den folgenden Befehl, um Version 4.4.1 zu installieren:

Install-Package NuGet.CommandLine -Version 4.4.1

Nachdem Sie das NuGet.CommandLine Paket installiert haben, können Sie alle NuGet CLI-Befehle über die Paket-Manager-Konsole ausführen.

Erweitern der Paket-Manager-Konsole

Einige Pakete erweitern die Paket-Manager-Konsole durch Hinzufügen von Befehlen. Das Paket fügt beispielsweise Microsoft.EntityFrameworkCore.Tools Befehle wie die folgenden hinzu:

  • Add-Migration: Generiert eine Migrationsdatei zum Erstellen oder Aktualisieren von Datenbanktabellen
  • Update-Database: Erstellt oder aktualisiert eine Datenbank entsprechend der neuesten Migration.

Screenshot des Paket-Manager-Konsolenfensters. Die Ausgabe aus den Befehlen Add-Migration und Update-Database zeigt eine datenbank an, die erstellt wird.

Einrichten eines NuGet PowerShell-Profils

Sie können ein PowerShell-Profil erstellen, um Ihre häufig verwendeten Befehle in allen PowerShell-Kontexten verfügbar zu machen, sodass Ihre PowerShell-Einstellungen zwischen Sitzungen nicht verloren gehen. NuGet unterstützt ein NuGet-spezifisches Profil, in der Regel bei %UserProfile%\Documents\WindowsPowerShell\NuGet_profile.ps1.

Um Ihren Benutzerprofilspeicherort zu finden, geben Sie $profile in die Konsole ein.

$profile
C:\Users\<user>\Documents\WindowsPowerShell\NuGet_profile.ps1

Um zu ermitteln, ob an diesem Speicherort ein Profil vorhanden ist, geben Sie die Zeichenfolge test-path $profileein. Wenn der Befehl False zurückgibt, müssen Sie das Profil mit dem angegebenen Namen dort erstellen. Weitere Informationen finden Sie unter Windows PowerShell-Profile.