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:
Ö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.
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üsselwortelmah
enthalten, führen Sie den folgenden Befehl aus. Wenn Sie den gewünschten Paketnamen bereits kennen, überspringen Sie diesen Schritt.Find-Package elmah
Nachdem Sie den Namen gefunden haben, verwenden Sie den Befehl
Install-Package
, um das Paket zu installieren. Um das PaketElmah.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:
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.
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.
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:
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.