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

Die Paket-Manager-Konsole in Visual Studio verwendet PowerShell-Befehle, um mit NuGet-Paketen zu interagieren. 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 dotnet CLI - oder NuGet CLI-Befehle in der Konsole verwenden.

In diesem Artikel wird beschrieben, wie Sie NuGet-Pakete mit PowerShell-Befehlen in der Package Manager-Konsole finden, installieren, aktualisieren und deinstallieren. Informationen zum vollständigen Befehl "Package Manager Console PowerShell" finden Sie unter PowerShell-Referenz.

Wichtig

Die PowerShell-Befehle und Argumente in diesem Artikel sind speziell für die Visual Studio Package Manager-Konsole. Diese Befehle unterscheiden sich von den Befehlen "PackageManagement" , die Sie in einer allgemeinen PowerShell-Umgebung verwenden können. Genau genommen verfügt jede Umgebung über Befehle, die in der jeweils anderen nicht verfügbar sind. Außerdem können sich Befehle mit identischem Namen in Bezug auf ihre spezifischen Argumente unterscheiden.

Verfügbarkeit der Konsole

Ab Visual Studio 2017 installieren NuGet und nuGet Package Manager automatisch beim Erstellen. NET-bezogene Workloads in Visual Studio. Sie können den Paket-Manager auch installieren, indem Sie im Visual Studio-Installer einzelne Komponenten codetools>>NuGet-Paket-Manager auswählen.

Sie können auch unter den Menüs "Tools-Erweiterungen>" und Aktualisierungen "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 Paket-Manager-Konsole ist in den Paket-Manager 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 stehen über die NuGet CLI zur Verfügung. Weitere Informationen finden Sie unter Installieren und Verwalten von NuGet-Paketen in Visual Studio für Mac.

Schnelles Suchen und Installieren eines Pakets

So verwenden Sie die Package 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 Package ManagerConsole" aus, um dasPaket-Manager-Konsolenfenster> zu öffnen.

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

    Find-Package elmah
    
  3. Nachdem Sie den Namen gefunden haben, verwenden Sie den Befehl, um das Install-Package Paket zu installieren. Geben Sie beispielsweise zum Installieren des Pakets Elmah.MVC Folgendes ein:

    Install-Package Elmah.MVC
    

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

Tipp

Viele Konsolenvorgänge hängen davon ab, dass eine Projektmappe in Visual Studio mit einem bekannten Pfadnamen geöffnet wurde. Wenn Sie über eine nicht gespeicherte Lösung oder keine Lösung verfügen, wird die Fehlerlösung nicht geöffnet oder nicht gespeichert. Stellen Sie sicher, dass Sie über eine offene und gespeicherte Lösung verfügen. Um den Fehler zu korrigieren, erstellen und speichern Sie eine Lösung, oder speichern Sie eine nicht gespeicherte Lösung.

Konsolenheader-Steuerelemente

Um diePaket-Manager-Konsole in Visual Studio zu öffnen, wählen Sie "Tools>NuGet Package Manager Package> Manager Console" im oberen Menü aus. Die Konsole ist ein Visual Studio-Fenster, das Sie so anordnen und positionieren können, wie Sie möchten. Weitere Informationen finden Sie unter Anpassen der Fensterlayouts in Visual Studio.

Standardmäßig werden Konsolenbefehle gegen eine bestimmte Paketquelle und ein bestimmtes Projekt ausgeführt, wie es in dem Steuerelement am oberen Rand des Fensters festgelegt ist:

Screenshot, der die Package Manager-Konsolensteuerelemente für Paketquelle und Projekt anzeigt.

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

Um Paketquellen zu verwalten, wählen Sie das Zahnradsymbol aus, das das Dialogfeld " Tools>Options>NuGet Package Manager>Package Sources " öffnet. Das Steuerelement neben der Projektauswahl löscht den Inhalt der Konsole.

Screenshot, der die Einstellungen der Package Manager-Konsole und die Steuerelemente löschen.

Die Schaltfläche auf der rechten Seite unterbrochen einen lang ausgeführten Befehl. Beispielsweise listet die Ausführung von Get-Package -ListAvailable -PageSize 500 die 500 besten Pakete in der Standardquelle (z.B. nuget.org) auf, deren Ausführung mehrere Minuten dauern kann.

Screenshot, der das Steuerelement

Suchen nach einem Paket

Um ein Paket in der Standardquelle zu finden, verwenden Sie Find-Package.

  • So suchen und Listenpakete, die bestimmte Schlüsselwörter enthalten:

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

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

    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 Befehl "Install-Package"- Konsole führt die folgenden Aktionen aus:

  • Führt die Schritte in "Was geschieht", wenn ein NuGet-Paket installiert ist.
  • Zeigt die anwendbaren Lizenzbedingungen im Konsolenfenster mit impliziter Vereinbarung an. Wenn Sie mit den Bedingungen nicht einverstanden sind, müssen Sie das Paket sofort deinstallieren.
  • Fügt einen Verweis auf das Paket in der Projektdatei und in Projektmappen-Explorer unter dem Knoten "Verweise" hinzu. Sie müssen das Projekt speichern, bevor Sie die Änderungen in der Projektdatei anzeigen können.

Fügt standardmäßig das Paket dem Standardprojekt hinzu, Install-Package das das Konsolenfenster angibt. Um das Paket zu einem Projekt hinzuzufügen, das nicht der Standard 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

Deinstallieren eines Pakets

Um ein Paket aus dem Standardprojekt zu deinstallieren, verwenden Sie Uninstall-Package <PackageName>. Wenn Sie den Paketnamen finden müssen, verwenden Sie Get-Package , um alle Pakete anzuzeigen, die im Standardprojekt installiert sind.

Deinstallationspaket führt die folgenden Aktionen aus:

  • Entfernt Verweise auf das Paket aus dem Projekt und alle Verwaltungsformate. Verweise werden nicht mehr im Projektmappen-Explorer angezeigt. Möglicherweise müssen Sie das Projekt neu erstellen, um den Verweis im Bin-Ordner zu entfernen.
  • Umgekehrt alle Änderungen, die das Paket an app.config oder web.configinstalliert hat.
  • Entfernt zuvor installierte Abhängigkeiten, wenn diese Abhängigkeiten von keinem verbleibenden Paket verwendet werden.

Führen Sie zum Deinstallieren eines Pakets und aller nicht verwendeten Abhängigkeiten Folgendes aus:

Uninstall-Package <PackageName> -RemoveDependencies

Führen Sie folgendes aus, um ein Paket zu deinstallieren, auch wenn andere Pakete davon abhängig sind:

Uninstall-Package <PackageName> -Force

Aktualisieren eines Pakets

Um ein Paket zu aktualisieren, verwenden Sie Get-Package und Update-Package. Sie können die folgenden Befehle ausführen:

  • Um zu überprüfen, 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. Konsolenbefehle arbeiten jedoch im Kontext von Visual Studio und einem gespeichertem Projekt/einer Projektmappe und erreichen oft mehr als ihre entsprechenden CLI-Befehle. Wenn Sie beispielsweise ein Paket über die Konsole installieren, wird ein Verweis auf das Projekt hinzugefügt. Mit einem CLI-Befehl ist dies nicht der Fall. Aus diesem Grund bevorzugen Entwickler, die in Visual Studio arbeiten, 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

Der vorherige Befehl installiert die neueste Version der NuGet CLI. Um eine bestimmte Version zu installieren, verwenden Sie die -Version Option. Geben Sie beispielsweise zum Installieren von Version 4.4.1 Folgendes ein:

Install-Package NuGet.CommandLine -Version 4.4.1

Nachdem Sie das Paket installiert haben, können Sie alle NuGet CLI-Befehle über die NuGet.CommandLine Package Manager-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, der NuGet CLI-Befehle anzeigt, die nach der Installation des NuGet.CommandLine-Pakets verfügbar sind.

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 Sie Ihre PowerShell-Einstellungen zwischen Sitzungen nicht verlieren. 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 bestimmen, ob ein Profil an diesem Speicherort vorhanden ist, geben Sie die Eingabetaste test-path $profileein. Wenn der Befehl zurückgibt False, müssen Sie das Profil mit dem angegebenen Namen an diesem Speicherort erstellen. Weitere Informationen finden Sie im Thema zum Windows PowerShell-Tipp:

Nächste Schritte