Freigeben über


Suchen und Bewerten 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 nuget.org öffentlichen Sammlung oder aus privaten Quellen stammen, die Ihre Organisation oder eine andere Partei bereitstellt.

Suchen von Paketen

Pakete können Sie direkt unter https://nuget.org/packages finden oder über die Visual Studio Package Manager-Benutzeroberfläche oder die Package Manager-Konsole, wobei nuget.org als Quelle dient. Alle Pakete von nuget.org werden routinemäßig auf Viren gescannt.

Auf der seite nuget.org/packages werden NuGet-Pakete mit den am häufigsten verwendeten Paketen für alle .NET-Projekte aufgelistet. Einige dieser Pakete können für Ihre Projekte nützlich sein.

Screenshot der nuget.org/packages-Website, auf der Pakete und Informationen zu Updates, Downloads und unterstützten Frameworks für jedes Paket aufgelistet sind.

Um nach einem Paket zu suchen, geben Sie den Paketnamen oder Suchbegriffe in das 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 mithilfe erweiterter Filter- und Sortieroptionen verfeinern.

Screenshot nuget.org/packages mit hervorgehobenen Filteroptionen und Sortierliste. Filteroptionen wie das Framework und der Pakettyp sind sichtbar.

Verwenden Sie die Frameworks-Filter , um Pakete anzuzeigen, die auf bestimmte .NET Frameworks abzielen. Weitere Informationen finden Sie unter Zielframeworks in Projekten im SDK-Format.

  • Wenn Sie eine .NET Framework-Generation auswählen, beschränkt der Filter die Suchergebnisse auf Pakete, die mit einem der einzelnen Zielframeworks innerhalb dieser Generation kompatibel sind. Wenn Sie beispielsweise .NET auswählen, werden Pakete zurückgegeben, die mit einem der modernen .NET Frameworks kompatibel sind, einschließlich .NET 5.0 bis .NET 10.0.

    Screenshot, der die Frameworkfilter auf nuget.org zeigt. Unter dem erweiterten .NET Framework werden Frameworks von .NET 5.0 bis .NET 10.0 aufgeführt.

  • Wenn Sie die Pfeile verwenden, um eine Framework-Generation zu erweitern, werden im Panel einzelne Zielframework-Moniker (TFMs) aufgelistet, nach denen Sie Ihre Ergebnisse filtern können. Wenn Sie beispielsweise net5.0 auswählen, werden Pakete zurückgegeben, die mit .NET 5.0 Framework 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 .

  • Beim Kombinieren mehrerer Frameworkfilter werden Suchergebnisse angezeigt, die allen ausgewählten Filtern entsprechen. Mit anderen Worten, die Seite listet Pakete auf, die in den Schnittpunkt Ihrer Auswahl fallen. Beispiel:

    • Wenn Sie netcoreapp3.1 und net45 auswählen, werden Pakete angezeigt, die auf .NET Core 3.1 und .NET Framework 4.5 abzielen.
    • Durch Auswählen der .NET Core Framework-Generation und net45 werden Pakete zurückgegeben, die auf .NET Framework 4.5 und mindestens eine der .NET Core TFMs (.NET Core 1.0 bis .NET Core 3.1) abzielen.

    Alternativ können Sie nach Paketen suchen, die einem ihrer Frameworkfilter entsprechen. Wechseln Sie dazu zum Anfang der Filteroptionen. Wählen Sie neben dem Framework-Filtermodus"Beliebig" aus.

    • Wenn Sie netcoreapp3.1 und net5.0 auswählen, werden dann Pakete angezeigt, die auf .NET Core 3.1 oder .NET 5.0 abzielen.
    • Wenn Sie netcoreapp3.1 und die .NET Framework-Generation auswählen, werden Pakete zurückgegeben, die auf .NET Core 3.1 oder eines der .NET TFMs (.NET 5.0 bis .NET 10.0) abzielen.
  • Weitere Informationen zum Auswerten der unterstützten Frameworks eines Pakets und deren Kompatibilität mit Ihrem Projekt finden Sie unter Ermitteln unterstützter Frameworks weiter unten in diesem Artikel.

Verwenden Sie den Pakettypfilter , um Pakete eines bestimmten Typs auflisten:

  • Alle Typen sind der Standardwert und zeigen 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 neuen Befehl dotnet erstellen können.
  • MCP Server filtert nach Paketen, die MCP-Server (Model Context Protocol) implementieren, die Sie verwenden können, um KI-Anwendungen mit Ihren Daten und Systemen zu verbinden.

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 anzuwenden, wählen Sie "Übernehmen" aus. Um zurück zu den Standardwerten zu wechseln, wählen Sie "Zurücksetzen" aus.

Verwenden Sie die Liste " Sortieren nach " in der oberen rechten Ecke der Seite, um die Paketliste 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 Paketversion in absteigender chronologischer Reihenfolge.

Such-Syntax

Paketsuchabfragen, die Sie bei nuget.org ausführen, über die Befehlszeilenschnittstelle (NuGet Command-Line Interface, CLI) und in Visual Studio verwenden alle dieselbe Syntax. Andere Paketquellen, z. B. Azure Artifacts oder GitHub-Paket-Repository, verwenden möglicherweise unterschiedliche Syntax oder unterstützen möglicherweise keine erweiterte Filterung.

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

  • Suchanfragen gelten für Schlüsselwörter und Beschreibungen und sind nicht groß-/klein-schreibungssensitiv. Beispielsweise durchsuchen die folgenden Zeichenfolgen die Eigenschaft id nach der Zeichenfolge nuget.core.

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

  • Bei Suchanfragen auf der id-Eigenschaft werden Teilzeichenfolgen abgeglichen, während packageid und owner exakte Übereinstimmungen verwenden, bei denen die Groß-/Kleinschreibung ignoriert wird. Beispiel:

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

  • Sie können gleichzeitig nach mehreren Werten oder Eigenschaften suchen. Beispiel:

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

  • Suchvorgänge ignorieren nicht unterstützte Eigenschaften. Dies entspricht also invalid:jquery ui der Suche nach uiund invalid:jquery gibt alle Pakete zurück.

Ermitteln unterstützter Frameworks

NuGet installiert ein Paket nur dann in einem Projekt, wenn die unterstützten .NET Frameworks des Pakets die Zielframeworks des Projekts enthalten. 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:

  • Überprüfen Sie die Suchseite auf die unterstützten Frameworks eines Pakets, die als Signale unterhalb der Paket-ID angezeigt werden. 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 größer als die angezeigte Badge-Version ist.

    Dunkelblaue Abzeichen kennzeichnen explizit gezielte Frameworks. Hellblaue Abzeichen stellen ermittelte kompatible Frameworks dar.

    Wenn Sie ein Signal auswählen, werden Sie auf nuget.org zur Detailseite des Pakets weitergeleitet. Auf dieser Seite zeigt die Registerkarte "Frameworks " die vollständige Liste der unterstützten Frameworks an.

    Screenshot von nuget.org/packages. Unter zwei Paketnamen werden die Zeilen von Framework-Badges hervorgehoben, und eine QuickInfo zur Kompatibilität ist sichtbar.

  • Überprüfen Sie die Seite des Pakets unter nuget.org auf unterstützte Frameworks. Sie werden unterhalb der Paket-ID und auf der Registerkarte "Frameworks " angezeigt, aber nicht alle Pakete zeigen unterstützte Frameworks an.

    Screenshot einer nuget.org Paketseite. Unter dem Namen werden die Framework-Badges hervorgehoben. Auf der Registerkarte

  • Laden Sie das Paket manuell von der Paketseite herunter, indem Sie zum Abschnitt " Info " wechseln und "Paket herunterladen" auswählen. Ändern Sie die Dateierweiterung des heruntergeladenen Pakets von .nupkg in .zip, öffnen Sie den .zip-Ordner, und untersuchen Sie den lib-Ordner. Für jedes der unterstützten Frameworks existieren jeweils Unterordner, die mit einem TFM benannt sind. Weitere Informationen finden Sie unter Target Frameworks. Wenn keine Unterordner unter "lib" vorhanden sind und nur eine einzelne DLL vorhanden ist, versuchen Sie, das Paket zu installieren, um die Kompatibilität zu ermitteln.

  • Versuchen Sie, das Paket mithilfe von Install-Package in der Visual Studio Package Manager-Konsole in einem Projekt zu installieren. Wenn das Paket nicht kompatibel ist, zeigt die Konsolenausgabe die unterstützten Frameworks des Pakets an.

Pakete im Vorabversionsstatus

Viele Paketautoren bieten Vorschau- und Betaversionen, da sie weiterhin verbessern und Feedback zu den neuesten Überarbeitungen erhalten. Standardmäßig zeigt nuget.org Pakete im Vorabversionsstatus in der Paketliste und den Suchergebnissen an.

Um nur stabile Versionen aufzulisten und zu durchsuchen:

  • Wechseln Sie nuget.org zum Erweiterten Suchbereich, und deaktivieren Sie das Kontrollkästchen "Vorabversionen einschließen ".
  • Deaktivieren Sie auf der Benutzeroberfläche des Visual Studio NuGet-Paket-Managers das Kontrollkästchen "Vorabversion einschließen " neben dem Suchfeld.

Die Visual Studio Package Manager-Konsole, NuGet CLI und dotnet CLI-Tools enthalten standardmäßig keine Vorabversionen. So schließen Sie Vorabversionen ein:

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

  • Verwenden Sie für die NuGet CLI die Option -prerelease mit den Befehlen install, update, list, search und mirror. Weitere Informationen finden Sie unter NuGet CLI-Referenz.

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

Systemeigene C++-Pakete

Visual Studio C++-Projekte können systemeigene C++-NuGet-Pakete verwenden. Die Installation dieser Pakete ermöglicht den Kontextmenübefehl "NuGet-Pakete verwalten ", macht ein native Zielframework verfügbar und stellt die Microsoft Build Engine (MSBuild)-Integration bereit.

Um systemeigene Pakete für nuget.org/packages zu finden, suchen Sie mithilfe von tag:native. Solche Pakete stellen in der Regel ZIEL- und PROPS-Dateien bereit, die NuGet beim Hinzufügen der Pakete automatisch importiert.

Auswerten von Paketen

Die beste Möglichkeit, die Nützlichkeit eines Pakets auszuwerten, besteht darin, es auszuprobieren. Sie benötigen eine Abhängigkeit von einem Paket, wenn Sie es verwenden, daher 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“ bedeutet, dass die Paketbesitzer ein reserviertes Paket-ID-Präfix beantragt und gewährt worden ist. In der Paketliste finden Sie dieses Häkchen neben der Paket-ID. Auf der Paketseite steht es unter der ID. Um die Id-Präfixreservierungskriterien zu erfüllen, müssen paketbesitzer sich und ihre Pakete eindeutig identifizieren.

    Screenshot einer Paketseite bei nuget.org. Unter dem Paketnamen befindet sich ein blaues Häkchen mit der Bezeichnung

  • Im Abschnitt "Downloads " in der Seitenspalte der Paketseite werden "Gesamt", " Aktuelle Version" und "Pro Tag"-durchschnittlicher Download angezeigt. Große Zahlen deuten darauf hin, dass sich das Paket unter vielen Entwicklern bewährt hat.

    Screenshot eines Abschnitts

    Wählen Sie neben "Downloads" die Option "Vollständige Statistiken " aus, um zu einer Seite zu wechseln, 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.

  • Auf der Registerkarte "Verwendet nach " auf der Paketseite werden die fünf am häufigsten verwendeten nuget.org Pakete und GitHub-Repositorys angezeigt, die von diesem Paket abhängen. Pakete und Repositorys, die von diesem Paket abhängen, werden als Abhängige bezeichnet. Abhängige Pakete und Repositories können als Unterstützer dieses Pakets betrachtet werden, da sie sich dafür entscheiden, zu vertrauen und darauf zu bauen.

    Screenshot einer Paketseite. Auf der Registerkarte

    Die neueste stabile Version eines abhängigen Pakets muss von jeder Version dieses Pakets abhängen. Diese Definition stellt sicher, dass aufgelistete Abhängigkeitspakete eine aktuelle Darstellung der Entscheidungen von Paketautoren sind, denen sie vertrauen und auf die sie sich verlassen. Die Liste der Abhängigkeiten zeigt keine Vorab-Abhängigkeiten, da diese noch nicht als vollwertige Bestätigungen gelten. Die folgenden Beispiele zeigen, welche Pakete als Abhängige aufgeführt werden können:

    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
    True, die neueste stabile Version hängt von diesem Paket ab.
    v1.0.0 hängt von diesem Paket ab.
    v1.1.0 (neueste stabil)
    v1.2.0-preview
    False, die neueste stabile Version hängt nicht von diesem Paket ab.
    v1.0.0 hängt von diesem Paket ab.
    v1.1.0 (neueste stabil)
    v1.2.0-preview hängt von diesem Paket ab.
    False, die neueste stabile Version hängt nicht von diesem Paket ab.

    Die Anzahl der Sterne für ein GitHub-Repository gibt ihre Beliebtheit bei GitHub-Benutzern an. Für weitere Informationen über das GitHub-Sterne- und Repository-Bewertungssystem siehe Über Sterne.

    Hinweis

    Der Abschnitt "Used By " 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 gepflegtes Paket verfügt über aktuelle Updates und einen langen Versionsverlauf. Vernachlässigte Pakete haben nur wenige und längst vergangene Aktualisierungen.

    Screenshot einer Paketseite. Auf der Registerkarte

In der Seitenspalte der Paketseite weisen die Abschnitte "Info " und "Besitzer " weitere informative Links auf:

Screenshot der seitenseitigen Spalte einer Paketseite mit hervorgehobenen Links für Besitzer, Projektwebsite, Quell-Repository und Lizenz.

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

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

  • Wählen Sie <die Lizenztyplizenz> aus, um Informationen zur Lizenz des Pakets zu erhalten. Wenn ein Paket keine Lizenzbedingungen angibt, wenden Sie sich an den Paketbesitzer.

  • Wählen Sie einen der Paketbesitzer unter "Besitzer " aus, um Informationen zu anderen Paketen zu erhalten, die sie veröffentlicht haben. Besitzer mit mehreren Paketen sind wahrscheinlicher, dass sie ihre Arbeit weiterhin unterstützen. Wählen Sie neben "Besitzer""Kontakt zu den Besitzern" aus, um sich direkt an die Paketentwickler zu wenden.

Lizenzinformationen abrufen

Einige NuGet-Clients und NuGet-Feeds können keine Lizenzierungsinformationen anzeigen. Um die Abwärtskompatibilität in solchen Fällen aufrechtzuerhalten, verweist die Lizenz-URL hier auf dieses Dokument.

Wenn Sie bei Auswahl der Lizenz-URL für ein Paket zu dieser Seite gelangen, bedeutet dies, dass das Paket eine Lizenzdatei enthält. Außerdem gilt eine oder beide der folgenden Aussagen:

  • Sie sind mit einem Feed verbunden, der nicht weiß, wie die Lizenzinformationen für den Client interpretiert und angezeigt werden.
  • Sie verwenden einen Client, der nicht weiß, wie die von dem Feed bereitgestellten Lizenzinformationen interpretiert und gelesen werden.

So lesen Sie die Informationen in der Lizenzdatei innerhalb des Pakets:

  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 <license>-Tag, wie <license type="file">license\license.txt</license>, um die Lizenzdatei und den Unterordner zu identifizieren. In diesem Fall wird die Lizenzdatei license.txtbenannt. Er befindet sich in einem Unterordner, der als Lizenz bezeichnet wird.
  4. Wechseln Sie zum angegebenen Unterordner, und öffnen Sie die Lizenzdatei.

Informationen zum MSBuild-Äquivalent zum Festlegen der Lizenz in der NUSPEC-Datei finden Sie unter Packen eines Lizenzausdrucks oder einer Lizenzdatei.