Installieren und Verwalten von Paketen in Visual Studio mit dem NuGet-Paketmanager

Mit der NuGet-Paketmanager-Benutzeroberfläche in Microsoft Visual Studio für Windows können Sie NuGet-Pakete in Projekten und Lösungen problemlos installieren, deinstallieren und aktualisieren.

Der Artikel richtet sich nur an Windows-Benutzer. Wenn Sie Visual Studio für Mac verwenden, lesen Sie den Abschnitt Einbindung eines NuGet-Pakets in Ihr Projekt.

Voraussetzungen

  • Installieren Sie Visual Studio 2022 für Windows mit jeder .NET-bezogenen Workload.

    Sie können die 2022 Community-Edition kostenlos von visualstudio.com installieren oder die Professional oder Enterprise Edition verwenden.

    Visual Studio 2017 und höher enthält automatisch NuGet Package Manager, wenn ein .NET-bezogener Workload installiert wird. Um sie einzeln in Visual Studio Installer zu installieren, wählen Sie die Registerkarte Einzelne Komponenten und dann NuGet-Paketmanager unter Code-Tools.

    Wenn der NuGet-Paket-Manager in Visual Studio 2015 fehlt, aktivieren Sie Tools > Erweiterungen und Updates, und suchen Sie nach der Erweiterung für den NuGet-Paket-Manager. 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.

  • Registrieren Sie sich für ein kostenloses Konto auf nuget.org, falls Sie noch kein Konto haben. Sie müssen sich registrieren und das Konto bestätigen, bevor Sie ein Paket hochladen können.

Suchen und Installieren eines Pakets

Gehen Sie folgendermaßen vor, um ein NuGet-Paket mit Visual Studio zu finden und zu installieren:

  1. Laden Sie ein Projekt im Lösungs-Explorer, und wählen Sie dann Projekt>NuGet-Pakete verwalten.

    Das Fenster NuGet-Paket-Manager wird geöffnet.

  2. Wählen Sie die Registerkarte Durchsuchen, um Pakete nach Beliebtheit aus der aktuell ausgewählten Quelle anzuzeigen (siehe Paketquellen).

    • Um nach einem bestimmten Paket zu suchen, verwenden Sie das Suchfeld oben links.
    • Abgekürzte Informationen können neben jeder Paket-ID angezeigt werden, um das richtige Paket zu identifizieren. Sie unterscheiden sich je nach der ausgewählten Paketquelle(n). Beispiele sind Anzahl der Paketdownloads, Autor oder Besitzerprofillinks.

    Hinweis

    In Visual Studio 17.11 und höher werden Profillinks für Paketbesitzer angezeigt, wenn dies von der ausgewählten Paketquelle unterstützt wird. Der Paketbesitz wird durch die Paketquelle definiert. Ein Beispiel finden Sie unter Verwalten von Paketbesitzern auf NuGet.org.

    In Visual Studio 17.10 und früher werden die Metadaten des Paketautors als Nur-Text angezeigt. Weitere Informationen finden Sie unter Metadaten des Paketautors.

    • Wählen Sie zum Anzeigen detaillierter Paketinformationen ein Paket aus. Der Detailbereich auf der rechten Seite wird angezeigt und Sie können eine Version für die Installation auswählen. Screenshot: Fenster von NuGet-Paket-Manager mit ausgewählter Registerkarte „Durchsuchen“.
  3. Wählen Sie im rechten Bereich eine Version aus der Dropdownliste aus. Wenn Sie Vorabversionen in die Versionsliste einschließen möchten, wählen Sie Vorabversion einschließen aus.

  4. Klicken Sie auf die Schaltfläche Installieren, um das NuGet-Paket zu installieren. Möglicherweise werden Sie aufgefordert, Lizenzbedingungen zu akzeptieren oder zur Überprüfung der Installation aufgefordert zu werden.

    Visual Studio installiert das Paket und seine Abhängigkeiten im Projekt. Nach Abschluss der Installation werden die hinzugefügten Pakete auf der Registerkarte Installiert angezeigt. Sie finden Pakete auch im Knoten Abhängigkeiten>Pakete ihres Projekts in LÖsungs-Explorer. Nachdem Sie ein Paket installiert haben, können Sie mit einer using-Anweisung darauf im Projekt verweisen.

  5. (Optional) NuGet verfügt über zwei Formate, in denen ein Projekt Pakete verwenden kann: PackageReference und packages.config. Um das Standardformat festzulegen, wählen Sie Extras>Optionen aus, erweitern Sie NuGet Paket-Manager, wählen Sie Allgemein und dann das Standardpaketverwaltungsformat aus. Weitere Informationen finden Sie unter Standardformat für die Paketverwaltung wählen.

Deinstallieren eines Pakets

Um ein NuGet-Paket zu deinstallieren, gehen Sie folgendermaßen vor:

  1. Laden Sie ein Projekt in Lösungs-Explorer, wählen Sie Projekt>NuGet-Pakete verwalten und dann die Registerkarte Installiert aus.

  2. Wählen Sie das Paket aus, das im linken Bereich deinstalliert werden soll (verwenden Sie das Suchfeld, um es bei Bedarf zu finden), und wählen Sie dann im rechten Bereich Deinstallieren aus.

    Screenshot: NuGet-Paket-Manager mit ausgewähltem Paket und hervorgehobener Schaltfläche „Deinstallieren“.

Aktualisieren eines Pakets

Führen Sie die folgenden Schritte aus, um das NuGet-Paket hinzuzufügen:

  1. Laden Sie ein Projekt im Lösungs-Explorer, und wählen Sie dann Projekt>NuGet-Pakete verwalten. Wählen Sie für Websiteprojekte zuerst den Ordner Bin aus.

  2. Wählen Sie die Registerkarte Updates aus, um Pakete anzuzeigen, die über verfügbare Updates aus den ausgewählten Paketquellen verfügen. Wählen Sie Vorabversion einschließen aus, um Vorabversionspakete in die Liste „Update“ einzubeziehen.

  3. Wählen Sie das Paket aus, um es zu aktualisieren. Wählen Sie im rechten Bereich die gewünschte Version aus der Dropdownliste aus, und wählen Sie dann Aktualisieren aus.

    Screenshot: NuGet-Paket-Manager mit ausgewähltem Paket und hervorgehobener Schaltfläche „Aktualisieren“.

  4. Bei einigen Paketen ist die Schaltfläche Aktualisieren deaktiviert, und die folgende Meldung wird angezeigt: Implizit von einem SDK referenziert. Um das Paket zu aktualisieren, aktualisieren Sie das SDK, zu dem es gehört. Diese Meldung gibt an, dass das Paket Teil eines größeren Frameworks oder SDK ist und nicht unabhängig aktualisiert werden kann. (Solche Pakete sind intern mit <IsImplicitlyDefined>True</IsImplicitlyDefined> markiert.) Beispielsweise ist Microsoft.NETCore.App Teil des .NET Core SDK, und die Paketversion unterscheidet sich von der Version des von der Anwendung verwendeten Frameworks für die Runtime. Um eine neue Version von .NET Core herunterzuladen, aktualisieren Sie Ihre .NET Core-Installation. Weitere Informationen finden Sie unter .NET Core Metapackages und Versionsverwaltung. Dieses Szenario gilt für die folgenden häufig verwendeten Pakete:

    • Microsoft.AspNetCore.All
    • Microsoft.AspNetCore.App
    • Microsoft.NETCore.App
    • NETStandard.Library

    Screenshot: NuGet-Paket mit deaktivierter Schaltfläche „Aktualisieren“.

  5. Wenn Sie mehrere Pakete auf ihre neuesten Versionen aktualisieren möchten, wählen Sie sie in der NuGet-Paketliste aus, und wählen Sie dann Aktualisieren aus.

  6. Sie können auch ein einzelnes Paket auf der Registerkarte Installiert aktualisieren. In diesem Fall können Sie auch eine Version und die Option Vorabversion einschließen auswählen.

Verwalten von Paketen für die Projektmappe

Die Verwaltung von Paketen für eine Projektmappe ist eine praktische Möglichkeit, mit mehreren Projekten gleichzeitig zu arbeiten:

  1. Wählen Sie eine Lösung im Lösungs-Manager und dann Tools>NuGet Paket-Manager>NuGet-Pakete für Lösung verwalten aus.

  2. Wählen Sie im Fenster NuGet-Pakete für Lösung verwalten die Projekte aus, die von den Vorgängen betroffen sind.

    Screenshot: Fenster „Pakete für Lösung verwalten“, in dem mehrere Projekte ausgewählt sind.

Registerkarte „Konsolidieren“

Entwickler sind in der Regel nicht davon begeistert, verschiedene Versionen desselben NuGet-Pakets in verschiedenen Projekten in derselben Projektmappe zu verwenden. Mit Visual Studio können Sie eine allgemeine Version für Ihre NuGet-Pakete verwenden. Verwenden Sie dazu die Registerkarte Konsolidieren des Fensters NuGet Paket-Manager, um zu ermitteln, wo Pakete mit unterschiedlichen Versionsnummern von verschiedenen Projekten in der Lösung verwendet werden.

Screenshot: Fenster „Pakete für Lösung verwalten“, in dem die Registerkarte „Konsolidieren“ ausgewählt ist.

In diesem Beispiel verwendet das ClassLibrary1-Projekt EntityFramework 6.2.0, während das ConsoleApp1-Projekt EntityFramework 6.1.0 verwendet. Führen Sie die folgenden Schritte aus, um Paketversionen zu konsolidieren:

  1. Wählen Sie auf der Registerkarte Konsolidieren die zu aktualisierenden Projekte in der Projektliste aus.

  2. Wählen Sie die Version aus, die für alle diese Projekte in der Versionsliste verwendet werden soll.

  3. Wählen Sie Installieren aus.

    Der NuGet Paket-Manager installiert die ausgewählte Paketversion in allen ausgewählten Projekten. Danach erscheint das Paket nicht mehr auf der Registerkarte Konsolidieren.

Paketquellen

Visual Studio ignoriert die Reihenfolgen der Paketquellen und verwendet dabei das Paket aus der Quelle, die als erstes auf eine Anforderung reagiert. Weitere Informationen finden Sie unter Pakete wiederherstellen. Informationen zum Laden eines Pakets aus einer bestimmten Quelle finden Sie unter Paketquellzuordnung.

Führen Sie die folgenden Schritte aus, um NuGet-Paketquellen zu verwalten:

  1. Um die Quelle zu ändern, von der Visual Studio Paket-Metadaten lädt, wählen Sie eine Quelle über den Paketquellenselektor aus.

    Screenshot: Hervorgehobener Paketquellenselektor.

  2. Um Ihre Paketquellen zu verwalten, wählen Sie das Symbol Einstellungen oder Tools>Optionen aus.

    Screenshot: Hervorgehobenes Symbol „Paketquelleneinstellungen“.

  3. Erweitern Sie im Fenster Optionen den Knoten NuGet Paket-Manager und dann Paketquellen aus.

    Screenshot: Fenster „Optionen“ mit ausgewählter Option „Paketquellen“.

  4. Um eine Quelle hinzuzufügen, wählen Sie + aus, bearbeiten Sie den Namen, geben Sie die URL oder den Pfad in der Quelle ein, und wählen Sie Aktualisieren aus.

    Die Quelle wird jetzt in der Dropdownliste Paketquelle angezeigt.

  5. Um eine Paketquelle zu ändern, markieren Sie sie, bearbeiten Sie die Felder Name und quelle, und wählen Sie Aktualisieren aus.

  6. Um eine Paketquelle zu deaktivieren, deaktivieren Sie das Kontrollkästchen links neben dem Namen in der Liste.

  7. Um eine Paketquelle zu entfernen, wählen Sie Sie aus, und klicken Sie dann auf die Schaltfläche X.

    Wenn eine Paketquelle nach dem Löschen wieder angezeigt wird, wird sie möglicherweise in einer NuGet.config-Datei auf Computer- oder Benutzerebene aufgelistet. Informationen zum Speicherort dieser Dateien finden Sie unter Allgemeine NuGet-Konfigurationen. Entfernen Sie die Paketquelle in den Dateien, indem Sie sie manuell bearbeiten oder den Befehl NuGet-Quellen verwenden.

Steuerelement „Optionen“ im NuGet-Paket-Manager

Wenn Sie ein Paket auswählen, zeigt der NuGet-Paket-Manager ein erweiterbares Optionssteuerelement unter der Versionsauswahl an. Beachten Sie, dass bei einigen Projekttypen nur die Option Vorschaufenster anzeigen angegeben ist.

Screenshot: Erweitertes Optionselement von NuGet-Paket-Manager.

Die verfügbaren Optionen werden in den folgenden Abschnitten erläutert.

Installations- und Aktualisierungsoptionen

Diese Optionen sind nur für bestimmte Projekttypen verfügbar:

  • Mit Abhängigkeitsverhalten wird konfiguriert, wie NuGet entscheidet, welche Versionen von abhängigen Paketen installiert werden sollen: Es hat die folgenden Einstellungen:

    • Die Option Abhängigkeiten ignorieren überspringt die Installation von Abhängigkeiten, was typischerweise zu einer Unterbrechung des zu installierenden Pakets führt.
    • Niedrigste [Standard] installiert die Abhängigkeit mit der minimalen Versionsnummer, die den Anforderungen des primär ausgewählten Pakets entspricht.
    • Höchster Patch installiert die Version mit den gleichen Haupt- und Nebenversionsnummern, aber mit der höchsten Patchnummer. Wenn beispielsweise die Version 1.2.2 angegeben wird, wird die höchste Version, die mit 1.2 beginnt, installiert.
    • Höchste kleinere installiert die Version mit der gleichen Hauptversionsnummer, aber der höchsten Nebenversions und Patchnummer. Wenn die Version 1.2.2 angegeben wird, wird die höchste Version, die mit 1 beginnt, installiert.
    • Höchste installiert die höchste verfügbare Version des Pakets.
  • Aktion bei Dateikonflikt gibt an, wie NuGet Pakete behandeln soll, die bereits im Projekt oder auf dem lokalen Computer vorhanden sind. Es hat die folgenden Einstellungen:

    • Aufforderung weist NuGet an, zu fragen, ob bestehende Pakete beibehalten oder überschrieben werden sollen.
    • Alle ignorieren weist NuGet an, das Überschreiben vorhandener Pakete zu überspringen.
    • Alle überschreiben weist NuGet an, alle vorhandenen Pakete zu überschreiben.

Deinstallationsoptionen

Diese Optionen sind nur für bestimmte Projekttypen verfügbar:

  • Abhängigkeiten entfernen: Wenn diese Option ausgewählt ist, werden alle abhängigen Pakete entfernt, wenn nicht an anderer Stelle im Projekt auf sie verwiesen wird.

  • Deinstallation erzwingen, auch wenn Abhängigkeiten davon bestehen: Wenn diese Option ausgewählt ist, wird ein Paket deinstalliert, auch wenn darauf im Projekt noch verwiesen wird. Diese Option wird in der Regel in Kombination mit Abhängigkeiten entfernen verwendet, um ein Paket und alle von ihm installierten Abhängigkeiten zu entfernen. Die Verwendung dieser Option kann jedoch zu fehlerhaften Verweisen im Projekt führen. In diesem Fall müssen Sie möglicherweise diese anderen Pakete neu installieren.

Weitere Informationen

Weitere Informationen zu NuGet finden Sie in den folgenden Artikeln: