Suchen und Auswerten von NuGet-Paketen für Ihr Projekt

Wenn Sie ein .NET-Projekt starten oder einen funktionalen Bedarf in Ihrer App oder Ihrem Dienst identifizieren, können Sie häufig vorhandene NuGet-Pakete installieren, um Zeit und Probleme beim Erstellen eigener Pakete zu sparen. Vorhandene Pakete können aus der öffentlichen Sammlung von nuget.org oder aus privaten Quellen stammen, die Ihre Organisation oder eine andere Partei zur Verfügung stellt.

Pakete finden

Sie finden Pakete direkt unter https://nuget.org/packages oder über die Visual Studio Paket-Manager UI oder Paketmanager Konsole mit nuget.org als Quelle. (Beachten Sie, dass alle Pakete auf nuget.org routinemäßig auf Viren gescannt werden.)

Bei nuget.org/packages wird eine Liste von NuGet-Paketen mit den am häufigsten verwendeten Paketen für alle .NET-Projekte angezeigt, die zuerst aufgeführt sind. Einige dieser Pakete können für Ihre Projekte nützlich sein.

Screenshot that shows the default view of nuget.org/packages with the most popular packages at the top.

Um nach einem Paket zu suchen, geben Sie den Paketnamen oder Suchbegriffe im Suchfeld oben auf der Seite ein. Sie können die erweiterte Suchsyntax verwenden, um Ihre Suche zu filtern.

Erweiterte Filterung und Sortierung

Bei nuget.org/packages können Sie Ihre Suchergebnisse verfeinern, indem Sie die erweiterten Filter- und Sortieroptionen verwenden.

Screenshot that shows the filtering and sorting options on nuget.org.

Verwenden Sie die Frameworks-Filter, um Pakete für bestimmte .NET Frameworks anzuzeigen (Weitere Informationen finden Sie unter Target Frameworks):

  • Wenn Sie eines der Kontrollkästchen der .NET Framework-Generation auswählen, werden die Suchergebnisse nach Paketen gefiltert, die mit einem der einzelnen Target Frameworks innerhalb dieser Generation kompatibel sind. Wenn Sie beispielsweise Pakete auswählen.NET, die mit einem der modernen .NET Frameworks kompatibel sind, einschließlich durch net8.0net5.0 .

    Screenshot that shows the Framework filters on nuget.org.

  • Wenn Sie eine dieser Frameworkgenerationen mit den Pfeilen auf der rechten Seite erweitern, zeigen Sie einzelne Target Framework Monikers (TFMs), nach denen Sie Ihre Ergebnisse filtern können. Die Auswahl net5.0 gibt beispielsweise Pakete zurück, die mit dem Framework ".NET 5.0" kompatibel sind.

  • Standardmäßig werden Pakete nach der erweiterten Liste der berechneten kompatiblen Frameworks gefiltert. Wenn Sie Pakete ausschließlich nach den Objektframeworks filtern möchten, auf die sie explizit abzielen, deaktivieren Sie das Kontrollkästchen "Kompatible Frameworks einschließen".

  • Wenn Sie mehrere Frameworkfilter kombinieren, werden Suchergebnisse angezeigt, die mit allen ausgewählten Filtern übereinstimmen, d. h. Pakete, die in die Schnittmenge Ihrer Auswahl fallen. Wenn Sie beispielsweise netcoreapp3.1 und net45 zusammen auswählen, werden Pakete angezeigt, die sowohl auf '.NET Core 3.1' als auch auf „.NET Framework 4.5“ abzielen. Wenn Sie das Kontrollkästchen für die .NET Core-Frameworkgenerierung und das Kontrollkästchen net45 zusammen aktivieren, werden Pakete zurückgegeben, die auf „.NET Framework 4.5“ und mindestens eines der TFMs von „.NET Core“ (netcoreapp1.0 bis netcoreapp3.1) abzielen.

    • Wenn Sie Pakete anzeigen möchten, die einem ihrer Frameworkfilter entsprechen, wählen Sie alternativ das Optionsfeld "Beliebig" in der Option "Framework-Filtermodus" aus. Wählen netcoreapp3.1 Sie nun Pakete aus, die auf ".NET Core 3.1" oder ".NET 5.0" abzielen, und net5.0 zeigen sie an. Wenn Sie das netcoreapp3.1 Kontrollkästchen aktivieren und das Kontrollkästchen für die .NET Frameworkgenerierung zusammen aktivieren, werden Pakete zurückgegeben, die auf ".NET Core 3.1" oder eines der ".NET Core 3.1" abzielen. TFMs von NET (net5.0 bis net8.0).
  • Weitere Informationen zum Auswerten der unterstützten Frameworks eines Pakets und dessen Kompatibilität mit Ihrem Projekt finden Sie hier.

Sie können den Filter Pakettyp verwenden, um Pakete eines bestimmten Typs anzuzeigen:

  • Alle Typen ist die Standardeinstellung und zeigt alle Pakete unabhängig vom Typ an.
  • Abhängigkeitsfilter für normale NuGet-Pakete, die Sie in Ihrem Projekt installieren können.
  • .NET-Tool filtert nach .NET-Tools-Paketen, die Konsolenanwendungen enthalten.
  • Vorlagenfilter für .NET-Vorlagen, mit denen Sie neue Projekte mit dem Befehl neues dotnet erstellen können.

Standardmäßig listet NuGet alle Versionen von Paketen auf, einschließlich Vorabversionen und Betaversionen. Deaktivieren Sie im Abschnitt Optionen das Kontrollkästchen Vorabversion einschließen, um nur stabile, freigegebene Paketversionen anzuzeigen.

Um Änderungen zu übernehmen, klicken Sie auf Übernehmen. Um zurück zu den Standardwerten zu gelangen, wählen Sie Zurücksetzen aus.

Verwenden Sie die Dropdownliste Sortieren nach oben rechts auf der Seite, um die Liste nach mehreren Kriterien zu sortieren:

  • Relevanz ist der Standardwert und sortiert Ergebnisse nach einem internen Bewertungsalgorithmus.
  • Downloads sortiert die Suchergebnisse nach der Gesamtzahl der Downloads (in absteigender Reihenfolge).
  • Kürzlich aktualisiert sortiert die Suchergebnisse nach dem Erstellungsdatum der neuesten Version (in absteigender chronologischer Reihenfolge).

Suchsyntax

Paket-Suchanfragen auf nuget.org, von der NuGet CLI und von Visual Studio verwenden alle die gleiche Syntax. Andere Paketquellen, wie Azure Artifacts oder GitHub Package Repository, verwenden möglicherweise eine andere Syntax oder unterstützen keine erweiterte Filterung.

  • Sie können das Paket id, packageid, version, title, tags, author, description, summary, oder die Eigenschaften von owner mithilfe der Syntax <property>:<term> durchsuchen.

  • Die Suche bezieht sich auf Schlüsselwörter und Beschreibungen, wobei Groß- und Kleinschreibung nicht berücksichtigt werden. Die folgenden Zeichenfolgen durchsuchen beispielsweise alle die Eigenschaft id nach der Zeichenfolge nuget.core:

    id:NuGet.Core
    ID:nuget.core
    Id:NUGET.CORE

  • Bei der Suche nach der Eigenschaft id werden Teilstrings abgeglichen, während packageid und owner exakte Übereinstimmungen ohne Berücksichtigung der Groß- und Kleinschreibung verwenden. Zum Beispiel:

    PackageId:jquery sucht nach der genauen Paket-ID jquery.
    Id:jquery sucht nach allen Paket-IDs, die die Zeichenfolge jquery enthalten.

  • Sie können nach mehreren Werten oder Eigenschaften auf einmal suchen. Zum Beispiel:

    id:jquery id:ui sucht nach mehreren Begriffen in der Eigenschaft id.
    id:jquery tags:validation sucht nach mehreren Eigenschaften.

  • Die Suche ignoriert nicht unterstützte Eigenschaften, invalid:jquery ui ist also identisch mit der Suche nach ui und invalid:jquery gibt alle Pakete zurück.

Ermitteln unterstützter Frameworks

NuGet installiert ein Paket nur dann in ein Projekt, wenn die unterstützten .NET-Frameworks des Pakets die Zielframeworks des Projekts umfassen. Wenn das Paket nicht kompatibel ist, gibt NuGet einen Fehler aus.

Es gibt verschiedene Möglichkeiten, die Frameworks zu bestimmen, die ein Paket unterstützt:

  • Auf der Suchseite werden die unterstützten Frameworks eines Pakets als Signale unterhalb der Paket-ID angezeigt. Diese Signale zeigen die niedrigsten unterstützten Frameworkversionen aus den Generationen .NET, .NET Core, .NET Standard und .NET Framework . Das Paket ist mit jeder Frameworkversion kompatibel, die gleich oder höher als die angezeigte Signalversion ist.

    "Dunkelblau"-Badges stellen explizit gezielte Frameworks dar, während "hellblaue" Badges berechnete kompatible Frameworks darstellen.

    Wenn Sie auf ein Signal klicken, werden Sie auf nuget.org zur Detailseite des Pakets weitergeleitet. Auf der Registerkarte "Frameworks " auf der Seite des Pakets wird die vollständige Liste der unterstützten Frameworks angezeigt.

    Screenshot of the Framework badges on nuget.org's search page.

  • Auf der Seite des Pakets auf nuget.org werden unterstützte Frameworks unter der Paket-ID und auf der Registerkarte Frameworks angezeigt, aber nicht alle Pakete zeigen unterstützte Frameworks an.

    Screenshot of the Frameworks UI and tab on the package page at nuget.org.

  • Laden Sie das Paket manuell herunter, indem Sie unter Info die Option Paket herunterladen auswählen. Ändern Sie die Dateierweiterung des heruntergeladenen Pakets von .nupkg in ZIP, öffnen Sie den ZIP-Ordner, und überprüfen Sie den Ordner lib. Für jedes unterstützte Framework gibt es Unterordner, die jeweils mit einem Target Framework Moniker (TFM) benannt sind. Weitere Informationen finden Sie unter Zielframeworks. Wenn es unter lib keine Unterordner gibt und nur eine einzelne DLL vorhanden ist, versuchen Sie, das Paket zu installieren, um die Kompatibilität zu ermitteln.

  • Versuchen Sie, das Paket in ein Projekt zu installieren, indem Sie Paket installieren in der Visual Studio Paketmanager-Konsole verwenden. Wenn das Paket nicht kompatibel ist, zeigt die Konsolenausgabe die unterstützten Frameworks des Pakets an.

Vorabversionspakete

Viele Paketautoren stellen Vorab- und Betaversionen zur Verfügung, da sie ständig an der Verbesserung ihrer Pakete arbeiten und Feedback zu den letzten Überarbeitungen einholen. Standardmäßig zeigt nuget.org Vorabveröffentlichungspakete in der Paketliste und in den Suchergebnissen an.

So listen und suchen Sie nur stabile Versionen:

  • Deaktivieren Sie bei nuget.org das Kontrollkästchen Vorabversionen einschließen im Bereich „Erweiterte Suche“.
  • Deaktivieren Sie in der Visual Studio NuGet-Paket-Manager UI das Kontrollkästchen Vorabversionen einschließen neben dem Suchfeld.

Die Visual Studio Paketmanager-Konsole, NuGet CLI und dotnet CLI enthalten standardmäßig keine Vorabversionen. Schließen Sie Vorabversionen ein.

  • Verwenden Sie in der Paketmanager-Konsole den -IncludePrerelease-Schalter mit den Befehlen Find-Package, Get-Package, Install-Package, Sync-Package und Update-Package. Weitere Informationen finden Sie in der Azure PowerShell-Referenz.

  • Für die NuGet CLI verwenden Sie den Schalter -prerelease mit den Befehlen install, update, delete und mirror. Weitere Informationen finden Sie in der NuGet.Config-Referenz.

  • Geben Sie für die dotnet CLI eine Vorabversion mit dem Argument -v an. Weitere Informationen finden Sie unter Paketreferenz für dotnet hinzufügen.

Native C++-Pakete

Visual Studio C++-Projekte können systemeigene C++-NuGet-Pakete verwenden. Durch die Installation dieser Pakete wird der Kontextmenübefehl NuGet-Pakete verwalten aktiviert, ein native-Zielframework verfügbar gemacht und msBuild-Integration bereitgestellt.

Suchen Sie mit tag:native native Pakete auf nuget.org. Solche Paketen stellen üblicherweise .targets- und .props-Dateien bereit, die NuGet automatisch importiert, wenn Pakete hinzugefügt werden.

Auswerten von Paketen

Der beste Weg, die Nützlichkeit eines Pakets zu beurteilen, ist, es auszuprobieren. Sie gehen eine Abhängigkeit von einem Paket ein, wenn Sie es verwenden, also müssen Sie sicherstellen, dass es robust und zuverlässig ist. Das Installieren eines Pakets und das direkte Testen ist jedoch zeitaufwändig. Sie können viel über die Qualität eines Pakets erfahren, indem Sie die Informationen auf der Seite des Pakets unter nuget.org/packages verwenden.

  • Das Häkchen Präfix reserviert neben der Paket-ID in der Paketliste und der Paketseite bedeutet, dass die Paketbesitzer ein reserviertes Paket-ID-Präfix angewendet und erteilt haben. Um die ID-Präfixreservierungskriterien zu erfüllen, müssen Paketbesitzer sich und ihre Pakete eindeutig identifizieren.

    Screenshot that shows Prefix Reserved on a package's page.

  • Downloads in der rechten Spalte der Paketseite zeigen die Downloads als Gesamt, Aktuelle Version und Durchschnitt pro Tag an. Große Zahlen deuten darauf hin, dass sich das Paket unter vielen Entwicklern bewährt hat.

    Screenshot that shows Download statistics on a package's page.

    Wählen Sie Vollständige Statistiken neben Downloads aus, um eine Seite anzuzeigen, auf der Paketdownloads für die letzten sechs Wochen nach Versionsnummer angezeigt werden. Versionen, die mehr Entwickler verwenden, sind in der Regel bessere Auswahlmöglichkeiten.

  • Die Registerkarte Verwendet von auf der Paketseite zeigt die fünf beliebtesten nuget.org-Pakete und GitHub-Repositories, die von diesem Paket abhängen. Pakete und Repos, die von diesem Paket abhängen, werden als Abhängige Objekte bezeichnet. Abhängige Pakete und Repos können als Endorsement dieses Pakets angesehen werden, da sie sich entschieden haben, ihm zu vertrauen und von ihm abzuhängen.

    Screenshot that shows the Used By list.

    Die letzte stabile Version eines abhängigen Pakets muss von einer beliebigen Version dieses Pakets abhängen. Diese Definition stellt sicher, dass die aufgelisteten abhängigen Pakete ein aktuelles Spiegelbild der Entscheidung der Paketautoren sind, dem Paket zu vertrauen und von ihm abzuhängen. In der Liste der Abhängigkeiten sind die Abhängigkeiten der Vorabversion nicht aufgeführt, da sie noch nicht als vollwertig anerkannt sind. Die folgenden Beispiele zeigen, welche Pakete als abhängig angezeigt werden:

    Abhängige Paketversion Abhängiges Paket, das als abhängig aufgeführt wird?
    v1.0.0
    v1.1.0 (neueste stabile Version) hängt von diesem Paket ab.
    v1.2.0-preview
    WAHR, die neueste stabile Version hängt von diesem Paket ab.
    v1.0.0 hängt von diesem Paket ab.
    v1.1.0 (neueste stabile Version)
    v1.2.0-preview
    FALSCH, die neueste stabile Version ist nicht von diesem Paket abhängig.
    v1.0.0 hängt von diesem Paket ab.
    v1.1.0 (neueste stabile Version)
    v1.2.0-Vorschau hängt von diesem Paket ab.
    FALSCH, die neueste stabile Version ist nicht von diesem Paket abhängig.

    Die Anzahl der Sterne für ein GitHub-Repository gibt die Beliebtheit bei GitHub-Benutzern an. Weitere Informationen zum GitHub-Star- und Repository-Bewertungssystem finden Sie unter Info zu Sternen.

    Hinweis

    Der Abschnitt Verwendet von wird in regelmäßigen Abständen ohne menschliche Überprüfung und ausschließlich zu Informationszwecken generiert.

  • Auf der Registerkarte Versionen auf der Paketseite werden die Versionen, Downloads, Datumsangaben der Letzten Aktualisierungen und schwerwiegende Sicherheitsrisiken von Paketversionen angezeigt. Die Version, die Sie installieren, sollte keine Sicherheitsrisiken mit hohem Schweregrad aufweisen. Ein gut verwaltetes Paket verfügt über aktuelle Updates und einen langen Versionsverlauf. Vernachlässigte Pakete haben nur wenige und lang zurückkliegende Updates.

    Screenshot that shows the Versions list.

Die rechte Spalte der Paketseite enthält weitere informative Links:

Screenshot that shows the right column of the package page.

  • Wählen Sie die Projekt-Website aus, falls verfügbar, um zu sehen, welche Supportoptionen der Autor bereitstellt. Ein Projekt mit einer dedizierten Website wird üblicherweise gut unterstützt.

  • Wählen Sie das Quell-Repository aus, um zum Git-Quellcode-Repository für das Paket zu wechseln. Viele Autoren pflegen ihre Pakete in Open-Source-Repositorys, sodass die Benutzer direkt zu Fehlerkorrekturen und Funktionsverbesserungen beitragen können. Der Beitragsverlauf des Pakets ist ein guter Indikator dafür, wie viele Entwickler aktiv beteiligt sind.

  • Wählen Sie <Lizenztyp> Lizenz aus, um die MIT- oder andere Lizenz des Pakets anzuzeigen. Wenn ein Paket keine Lizenzbedingungen angibt, wenden Sie sich an den Paketbesitzer.

  • Wählen Sie einen der Paketbesitzer unter Besitzer aus, um andere Pakete zu sehen, die sie veröffentlicht haben. Eigentümer, die mehrere Pakete besitzen, sind eher bereit, ihre Arbeit weiter zu unterstützen. Wählen Sie Besitzer kontaktieren neben Besitzer aus, um sich direkt an die Paketentwickler zu wenden.

Lizenzinformationen abrufen

Einige NuGet-Clients und NuGet-Feeds können möglicherweise keine Lizenzierungsinformationen anzeigen. Um in solchen Fällen die Abwärtskompatibilität zu wahren, verweist die Lizenz-URL auf dieses Dokument, in dem beschrieben wird, wie die Lizenzinformationen abgerufen werden können.

Wenn Sie durch die Auswahl der Lizenz-URL für ein Paket auf diese Seite gelangen, bedeutet dies, dass das Paket eine Lizenzdatei enthält und:

  • Sie sind mit einem Feed verbunden, der nicht weiß, wie er die Lizenzinformationen interpretieren und an den Kunden weiterleiten soll, oder
  • Sie verwenden einen Client, der nicht weiß, wie er die im Feed enthaltenen Lizenzinformationen interpretieren und lesen kann, oder
  • Eine Kombination dieser beiden Szenarien.

Zum Lesen der Informationen in der Lizenzdatei im Paket:

  1. Laden Sie das Paket manuell herunter, und entpacken Sie den Inhalt in einen Ordner.
  2. Öffnen Sie die .nuspec-Datei im Stammverzeichnis des Ordners.
  3. Untersuchen Sie das Tag <license>, z. B. <license type="file">license\license.txt</license>. Das Beispieltag gibt an, dass die Lizenzdatei license.txt heißt und sich in einem Unterordner namens license befindet.
  4. Navigieren Sie zum angegebenen Speicherort, und öffnen Sie die angegebene Datei.

Weitere Informationen zum MSBuild-Äquivalent zum Festlegen der Lizenz in .nuspec finden Sie unter Verpacken eines Lizenzausdrucks oder einer Lizenzdatei.

Nächste Schritte