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

Die Paket-Manager-Konsole in Visual Studio verwendet PowerShell-Befehle in Visual Studio 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 UI auszuführen. Sie können auch dotnet CLI- oder NuGet CLI-Befehle in der Konsole verwenden.

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

Wichtig

Die PowerShell-Befehle und -Argumente in diesem Artikel sind spezifisch für die Visual Studio Paket-Manager-Konsole. Diese Befehle unterscheiden sich von den PackageManagement-Modulbefehlen, die Sie in einer allgemeinen PowerShell-Umgebung verwenden können. Jede Umgebung hat Befehle, die in der anderen nicht 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 Paketmanager auch installieren, indem Sie im Visual Studio Installer die Option Einzelne Komponenten>Code-Tools>NuGet-Paketmanager auswählen.

Sie können auch unter den Menüs Tools>Erweiterungen und Updates oder Erweiterungen nach der NuGet-Paket-Manager-Erweiterung suchen. Wenn Sie das Installationsprogramm für Erweiterungen in Visual Studio nicht verwenden können, können Sie die Erweiterung direkt von https://dist.nuget.org/index.html herunterladen.

Die Paketmanager-Konsole ist in den Paketmanager für Visual Studio unter Windows integriert. Visual Studio Code und Visual Studio für Mac enthalten die Konsole nicht. Visual Studio für Mac verfügt über eine Benutzeroberfläche zum Verwalten von NuGet-Paketen, und die entsprechenden Konsolenbefehle sind über die NuGet CLI verfügbar. Weitere Informationen finden Sie unter Installieren und Verwalten von NuGet-Paketen in Visual Studio für Mac.

Schnelles Finden und Installieren eines Pakets

So verwenden Sie die Paket-Manager-Konsole, um schnell ein Paket zu finden und zu installieren:

  1. Öffnen Sie Ihr Projekt oder Ihre Lösung in Visual Studio, und wählen Sie Tools>NuGet-Paketmanager>Paketmanager-Konsole, um das Fenster „Paketmanager-Konsole“ zu öffnen.

  2. Geben Sie Find-Package in der Konsole mit einem Schlüsselwort ein, um das Paket zu finden, das Sie installieren möchten. Um beispielsweise Pakete zu suchen, die das Schlüsselwort elmahenthalten, führen Sie den folgenden Befehl aus. Wenn Sie den gewünschten Paketnamen bereits kennen, überspringen Sie diesen Schritt.

    Find-Package elmah
    
  3. Nachdem Sie den Namen gefunden haben, verwenden Sie den Befehl Install-Package, um das Paket zu installieren. Um das Paket Elmah.MVC zu installieren, geben Sie Folgendes ein:

    Install-Package Elmah.MVC
    

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

Tipp

Viele Konsolenoperationen 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 der Fehler Lösung nicht geöffnet oder nicht gespeichert. Stellen Sie sicher, dass Sie über eine geöffnete und gespeicherte Lösung verfügen. angezeigt. Um den Fehler zu beheben, erstellen und speichern Sie eine Lösung, oder speichern Sie eine nicht gespeicherte Lösung.

Konsolensteuerelemente

Um die Paketmanager-Konsole in Visual Studio zu öffnen, wählen Sie im oberen Menü Tools>NuGet-Paketmanager>Paketmanager-Konsole. Die Konsole ist ein Visual Studio-Fenster, das Sie nach Bedarf anordnen und positionieren können. Weitere Informationen finden Sie unter Anpassen der Fensterlayouts in Visual Studio.

Standardmäßig arbeiten Konsolenbefehle mit der spezifischen Paketquelle und dem Projekt, die in den Steuerelementen am oberen Rand des Fensters angezeigt werden:

Screenshot that shows the Package Manager Console controls for package source and project.

Die Auswahl einer anderen Paketquelle oder eines anderen Projekts ändert diese Standardwerte für nachfolgende Befehle. Um diese Einstellungen für einzelne Befehle zu überschreiben, ohne die Standardeinstellungen zu ändern, unterstützen die meisten Konsolenbefehle die Optionen -Source und -ProjectName.

Um Paketquellen zu verwalten, wählen Sie das Zahnradsymbol aus, mit dem das Dialogfeld Tools>Optionen>NuGet-Paketmanager>Paketquellen geöffnet wird. Das Steuerelement rechts neben der Projektauswahl löscht den Inhalt der Konsole.

Screenshot that shows the Package Manager Console settings and clear controls.

Die Schaltfläche ganz rechts unterbricht einen Befehl mit langer Ausführungszeit. Beispielsweise listet die Ausführung von Get-Package -ListAvailable -PageSize 500 die 500 besten verfügbaren Pakete in der Standardquelle (z. B. nuget.org) auf, deren Ausführung mehrere Minuten dauern kann.

Screenshot that shows the Package Manager Console stop control.

Suchen nach einem Paket

Verwenden Sie Paket finden, um ein Paket in der Standardquelle zu finden.

  • So suchen und listen Sie Pakete auf, die bestimmte Schlüsselwörter (keyword) enthalten:

    Find-Package <keyword1>
    Find-Package <keyword2>
    
  • So suchen und listen Sie Pakete auf, deren Name mit einer Zeichenfolge beginnt:

    Find-Package <string> -StartWith
    
  • Find-Package gibt standardmäßig eine Liste von 20 Paketen zurück. Verwenden Sie -First, um weitere Pakete anzuzeigen. Um beispielsweise die ersten 100 Pakete anzuzeigen, verwenden Sie Folgendes:

    Find-Package <keyword> -First 100
    
  • So listen Sie alle Versionen eines bestimmten Pakets auf:

    Find-Package <PackageName> -AllVersions -ExactMatch
    

Installieren eines Pakets

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

  • Führt die Schritte unter Was geschieht beim Installieren eines NuGet-Pakets? aus.
  • Zeigt im Konsolenfenster die geltenden Lizenzbedingungen mit stillschweigender Zustimmung an. Wenn Sie mit den Bedingungen nicht einverstanden sind, müssen Sie das Paket deinstallieren.
  • Fügt einen Verweis auf das Paket in der Projektdatei und im Lösungs-Explorer unter dem Knoten Verweise hinzu. Sie müssen das Projekt speichern, um die Änderungen in der Projektdatei zu sehen.

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

Install-Package Elmah.MVC -ProjectName UtilitiesLib

Deinstallieren eines Pakets

Um ein Paket aus dem Standardprojekt zu deinstallieren, verwenden Sie Uninstall-Package <PackageName>. Verwenden Sie Paket abrufen, um alle Pakete anzuzeigen, die derzeit im Standardprojekt installiert sind, wenn Sie einen Bezeichner finden müssen.

Paket deinstallieren führt die folgenden Aktionen aus:

  • Entfernt Verweise auf das Paket aus dem Projekt und allen Verwaltungsformaten. Verweise werden nicht mehr im Projektmappen-Explorer angezeigt. Möglicherweise müssen Sie das Projekt neu erstellen, damit es aus dem Ordner Bin entfernt wird.
  • Ändert alle Änderungen, die die Installation des Pakets an app.config oder web.config vorgenommen hat.
  • Entfernt zuvor installierte Abhängigkeiten, wenn diese Abhängigkeiten von keinem verbleibenden Paket verwendet werden.

Führen Sie Folgendes aus, um ein Paket und alle ungenutzten Abhängigkeiten zu deinstallieren:

Uninstall-Package <PackageName> -RemoveDependencies

Führen Sie Folgendes aus, um ein Paket zu deinstallieren, auch wenn andere Pakete davon abhängen:

Uninstall-Package <PackageName> -Force

Aktualisieren eines Pakets

Um ein Paket zu aktualisieren, verwenden Sie Paket abrufen und Paket aktualisieren. Sie können auch die folgenden Befehle ausführen:

  • So überprüfen Sie, ob für alle installierten Pakete neuere Versionen verfügbar sind:

    Get-Package -updates
    
  • So aktualisieren Sie ein bestimmtes Paket:

    Update-Package <PackageName>
    
  • So aktualisieren Sie alle Pakete in einem Projekt:

    Update-Package -ProjectName <ProjectName>
    
  • So aktualisieren Sie alle Pakete in der Lösung:

    Update-Package
    

Verwenden der NuGet CLI in der Konsole

Sie können auch die meisten Konsolenvorgänge mit der NuGet CLI ausführen. Die Befehle der PowerShell-Konsole werden jedoch im Kontext des in Visual Studio gespeicherten Projekts und der Lösung ausgeführt und können oft mehr als die entsprechenden NuGet CLI-Befehle. So wird beispielsweise bei der Installation eines Pakets über Install-Package einen Verweis auf die Projektdatei hinzugefügt, während der NuGet CLI-Befehl dies nicht tut. Aus diesem Grund ziehen Entwickler, die in Visual Studio arbeiten, es in der Regel vor, die Konsole anstelle der NuGet CLI zu verwenden.

Um NuGet CLI-Befehle in der Paketmanager-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. Um eine bestimmte Version zu installieren, verwenden Sie die Option -Version. Geben Sie z. B. ein, um Version 4.4.1 zu installieren.

Install-Package NuGet.CommandLine -Version 4.4.1

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

Erweitern der Paket-Manager-Konsole

Einige Pakete installieren neue Befehle für die Konsole. Beispielsweise erstellt MvcScaffolding Befehle wie Scaffold, wie unten gezeigt, die ASP.NET MVC-Controller und -Ansichten generieren:

Screenshot that shows NuGet CLI commands available after installing the NuGet.CommandLine package.

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 unter %UserProfile%\Documents\WindowsPowerShell\NuGet_profile.ps1.

Um den Speicherort Ihres Benutzerprofils 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 $profile ein. Wenn der Befehl False zurückgibt, müssen Sie das Profil mit dem angegebenen Namen an diesem Speicherort erstellen. Weitere Informationen finden Sie unter Windows PowerShell-Profile.

Nächste Schritte