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 ihrer eigenen 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 bereitstellen.

Suchen von Paketen

Sie können Pakete direkt bei https://nuget.org/packagesder Visual Studio Package Manager-Benutzeroberfläche oder der Paket-Manager-Konsole mit nuget.org als Quelle finden. Alle Pakete von nuget.org werden regelmäßig nach Viren gescannt.

Bei nuget.org/packages sehen Sie eine Liste der NuGet-Pakete mit den beliebtesten Paketen aller .NET-Projekte, die zuerst aufgeführt sind. Einige dieser Pakete können für Ihre Projekte nützlich sein.

Screenshot, der die Standardansicht von nuget.org/packages mit den beliebtesten Paketen oben zeigt.

Um nach einem Paket zu suchen, geben Sie den Paketnamen oder Suchbegriff 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 die Schaltfläche "Filter " oben rechts auswählen, um erweiterte Sortier- und Filteroptionen zu erweitern.

Screenshot, der das Fenster

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

  • Alle Typen sind die Standardeinstellung und zeigen alle Pakete unabhängig vom Typ an.
  • Abhängigkeitsfilter zu regulären NuGet-Paketen, die Sie in Ihrem Projekt installieren können.
  • .NET-Toolfilter auf .NET-Tools-Pakete , die Konsolenanwendungen enthalten.
  • Vorlagenfilter auf .NET-Vorlagen , mit denen Sie neue Projekte mit dem neuen Befehl dotnet erstellen können.

Verwenden Sie die Option " Sortieren nach ", um die Liste nach mehreren Kriterien zu sortieren:

  • Relevanz ist die Standardeinstellung und sortiert Ergebnisse nach einem internen Bewertungsalgorithmus.
  • : Sortiert die Suchergebnisse nach der Gesamtzahl der Downloads (in absteigender Reihenfolge).
  • Zuletzt aktualisiert werden die Suchergebnisse nach dem neuesten Datum der Paketversionserstellung sortiert, in absteigender chronologischer Reihenfolge.

Standardmäßig listet NuGet alle Versionen von Paketen auf, einschließlich Vorabrelease- und Betaversionen. Deaktivieren Sie im Abschnitt "Optionen" das Kontrollkästchen "Prerelease einschließen ", um nur stabile, freigegebene Paketversionen auflisten zu können.

Um Änderungen anzuwenden, wählen Sie "Anwenden" aus. Um zurück zu den Standardeinstellungen zu gelangen, wählen Sie "Zurücksetzen" aus.

Suchsyntax

Suchabfragen auf nuget.org, über die NuGet-CLI und mit der Erweiterung des NuGet-Paket-Managers in Visual Studio verwenden alle dieselbe Syntax. Diese erweiterte Filtersyntax wird von nuget.org unterstützt. Andere Paketquellen wie Azure Artifacts oder das GitHub-Paketrepository verwenden möglicherweise eine andere Syntax oder unterstützen keine erweiterte Filterung.

  • Sie können das Paketidtitletagsversionpackageiddescriptionsummaryauthorowner, oder Eigenschaften mithilfe der Syntax <property>:<term>durchsuchen.

  • Die Suche gilt für Schlüsselwörter und Beschreibungen und ist groß- und kleinschreibungsfähig. Die folgenden Zeichenfolgen durchsuchen beispielsweise die Eigenschaft für die id Zeichenfolge nuget.core:

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

  • Sucht nach den Unterzeichenfolgen der id Eigenschaft, während packageid genaue, groß- und owner kleinschreibungsbezogene Übereinstimmungen verwendet werden. Zum Beispiel:

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

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

    id:jquery id:ui sucht nach mehreren Ausdrücken in der id Eigenschaft.
    id:jquery tags:validation durchsucht mehrere Eigenschaften.

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

Ermitteln von unterstützten Frameworks

NuGet installiert ein Paket nur in ein Projekt, wenn die vom Paket unterstützten Frameworks das Zielframework 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:

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

    Screenshot der Frameworks-Benutzeroberfläche und Registerkarte auf der Paketseite bei nuget.org.

  • Laden Sie das Paket manuell herunter, indem Sie unter "Informationen" das Paket herunterladen. Ändern Sie die Dateierweiterung des heruntergeladenen Pakets von .nupkg in .zip, öffnen Sie den ordner.zip , und überprüfen Sie den lib-Ordner . Für jedes unterstützte Framework gibt es Unterordner, die jeweils mit einem Zielframework-Moniker (TFM) benannt sind. Weitere Informationen finden Sie unter Zielframeworks in Projekten im SDK-Format. 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 in ein Projekt zu installieren, indem Sie "Install-Package" in der Visual Studio Package Manager-Konsole verwenden. Wenn das Paket nicht kompatibel ist, zeigt dieser Befehl Ihnen die unterstützten Frameworks des Pakets an.

Vorabversionspakete

Viele Paketersteller stellen Vorschau- und Betaversionen bereit, da weiterhin Verbesserungen vorgenommen werden und Feedback zu den aktuellen Revisionen gewünscht wird. Standardmäßig werden nuget.org Vorabpaketpakete in der Paketliste und suchergebnissen angezeigt.

So listen Und durchsuchen Sie nur stabile Versionen:

  • Deaktivieren Sie bei nuget.org das Kontrollkästchen "Prerelease einschließen" im erweiterten Suchbereich.
  • Deaktivieren Sie in der Visual Studio NuGet Package Manager-Benutzeroberfläche das Kontrollkästchen "Vorabeingabe 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 Prerelease-Versionen ein:

  • Verwenden Sie in der Paket-Manager-Konsole den -IncludePrerelease Schalter mit den Find-PackageBefehlen , Sync-PackageGet-PackageInstall-Packageund Update-Package Befehlen. Weitere Informationen finden Sie im PowerShell-Befehlsverzeichnis in AppLocker.

  • Verwenden Sie für die NuGet CLI den -prerelease Schalter mit den installBefehlen , update, deleteund mirror Befehlen. Ausführlichere Informationen zu weiteren Parametern finden Sie in der Referenz zur CLI.

  • Geben Sie für die dotnet CLI eine Vorabversion mit dem -v Argument an. Weitere Informationen finden Sie im Dotnet-Add-Paketverweis.

Native C++-Pakete

Visual Studio C++-Projekte können native C++ NuGet-Pakete verwenden. Dadurch wird der Kontextmenübefehl NuGet-Pakete verwalten für Projekte aktiviert, das Zielframework native eingeführt und die Integration von MSBuild bereitgestellt.

Suchen Sie mit , um native Pakete auf nuget.org zu finden. Solche Pakete bieten in der Regel .targets - und .props-Dateien an, die NuGet beim Hinzufügen der Pakete automatisch importiert.

Bewerten von Paketen

Die beste Möglichkeit, die Nützlichkeit eines Pakets zu bewerten, besteht darin, es auszuprobieren. Sie benötigen eine Abhängigkeit von einem Paket, wenn Sie es verwenden, sodass Sie sicherstellen müssen, dass es robust und zuverlässig ist. Die Installation eines Pakets und direktes Testen ist jedoch zeitaufwendig. 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 Präfix Reservierte Häkchen neben der Paket-ID in der Paketliste und die Paketseite bedeutet, dass die Paketbesitzer ein reserviertes Paket-ID-Präfix angewendet und erteilt haben. Um die Id-Präfix-Reservierungskriterien zu erfüllen, müssen Paketbesitzer sich und ihre Pakete eindeutig identifizieren.

    Screenshot, der Präfix reserviert auf der Seite eines Pakets angezeigt wird.

  • Downloads in der rechten Spalte des Pakets zeigen Gesamt-, Aktuelle Version- und Pro-Tag-durchschnittliche Downloads an. Große Zahlen weisen darauf hin, dass sich das Paket unter vielen Entwicklern bewährt hat.

    Screenshot, der Statistiken auf der Seite eines Pakets herunterladen zeigt.

    Wählen Sie " Vollständige Statistiken " neben "Downloads " aus, um eine Seite anzuzeigen, die Paketdownloads für die letzten sechs Wochen nach Versionsnummer anzeigt. Versionen, die mehr Entwickler verwenden, sind in der Regel besser geeignet.

  • Used By: Auf der Paketseite listet der Abschnitt Used By (Verwendet von) die 5 beliebtesten NuGet.org-Pakete und die beliebtesten GitHub-Repositorys auf, die von diesem Paket abhängen. Pakete und Repositorys, die von diesem Paket abhängig sind, können als „abhängige Elemente“ dieses Pakets bezeichnet werden. Abhängige Pakete und Repositorys können als „Bestätigungen“ dieses Pakets angesehen werden, da sich die Paketautoren dafür entschieden haben, ihm zu vertrauen und sich auf das Paket zu verlassen.

    Screenshot, der die Liste

    Die neueste stabile Version eines abhängigen Pakets muss von einer beliebigen Version dieses Pakets abhängig sein. Diese Definition stellt sicher, dass die angezeigten abhängigen Pakete ein aktuelles Abbild der Entscheidung des Paketautors sind, diesem Paket zu vertrauen und von ihm abhängig zu sein. Die Liste der Abhängigen zeigt keine Vorabversionen an, da sie noch nicht als vollständige Bestätigungen betrachtet werden. In den folgenden Beispielen wird gezeigt, welche Pakete als Abhängige angezeigt werden:

    Abhängige Paketversion Abhängiges Paket, das als abhängig aufgeführt ist?
    v1.0.0
    v1.1.0 (neueste Stabile) hängt von diesem Paket ab.
    v1.2.0-preview
    WAHR, die neueste stabile Version hängt von Paket B ab.
    v1.0.0 hängt von diesem Paket ab
    v1.1.0 (neueste stabile Version)
    v1.2.0-preview
    FALSE, neueste stabile Version hängt nicht von diesem Paket ab.
    v1.0.0 hängt von diesem Paket ab
    v1.1.0 (neueste stabile Version)
    v1.2.0-preview hängt von diesem Paket ab.
    FALSE, 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. Weitere Informationen zum GitHub-Star- und Repository-Bewertungssystem finden Sie unter "Informationen zu Sternen".

    Hinweis

    Der Abschnitt "Used By " wird automatisch regelmäßig ohne menschliche Überprüfung und ausschließlich für Informationszwecke generiert.

  • Auf der Registerkarte "Versionen " auf der Paketseite werden die Versionen, Downloads, Datumsangaben für letzte 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 umfangreichen Versionsverlauf. Vernachlässigte Pakete verfügen über wenige und lange Updates.

    Screenshot der Liste

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

Screenshot der rechten Spalte der Paketseite.

  • Wählen Sie "Project"-Website, falls verfügbar, aus, um zu erfahren, welche Supportoptionen der Autor bereitstellt. Ein Projekt mit einer dedizierten Website wird üblicherweise besser 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 eines Pakets zeigt ebenfalls an, wie viele Entwickler sich aktiv am Paket beteiligen.

  • Wählen Sie <lizenztyplizenz> 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 anzuzeigen, die sie veröffentlicht haben. Bei Entwicklern, die mehrere Pakete veröffentlicht haben, ist es wahrscheinlicher, dass diese ihre Arbeit auch zukünftig fortsetzen. Wählen Sie "Kontaktbesitzer " neben "Besitzer " aus, um sich direkt an die Paketentwickler zu wenden.

Abrufen von Lizenzinformationen

Einige NuGet-Clients und NuGet-Feeds können möglicherweise keine Lizenzierungsinformationen anzeigen. Um Abwärtskompatibilität zu gewährleisten, zeigt die Lizenz-URL auf dieses Dokument, das Informationen zum Abrufen der Lizenzinformationen in solchen Fällen enthält.

Wenn Sie durch Klicken auf die Lizenz-URL für ein Paket auf diese Seite weitergeleitet wurden, zeigt dies, dass das Paket eine Lizenzdatei enthält, und

  • Sie sind mit einem Feed verbunden, der noch nicht weiß, wie die neuen Lizenzinformationen zu interpretieren sind und dem Client angezeigt werden müssen, ODER
  • Sie verwenden einen Client, der nicht weiß, wie Sie die von dem Feed bereitgestellten Lizenzinformationen interpretieren und lesen können, oder
  • Eine Kombination aus beiden Szenarien.

So könnten Sie die Informationen lesen, die in der Lizenzdatei des Pakets enthalten sind:

  1. Laden Sie das NuGet-Paket herunter, und entzippen Sie seinen Inhalt in einen Ordner.
  2. Öffnen Sie die -Datei, die sich im Stammverzeichnis dieses Ordners befindet.
  3. Untersuchen Sie das <license> Tag, z <license type="file">license\license.txt</license>. B. . Das Beispieltag gibt an, dass die Lizenzdatei license.txt benannt wird und sich in einem Unterordner namens Lizenz befindet.
  4. Navigieren Sie zum angegebenen Speicherort, und öffnen Sie die angegebene Datei.

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

Nächste Schritte