Suchen und Auswerten von NuGet-Paketen für Ihr ProjektFinding and evaluating NuGet packages for your project

Wenn Sie ein .NET-Projekt starten oder bei Ihrer App bzw. Ihrem Dienst eine funktionale Anforderung vorliegt, können Sie viel Zeit und Aufwand sparen, indem Sie vorhandene NuGet-Pakete verwenden, um diese Anforderung zu erfüllen.When starting any .NET project, or whenever you identify a functional need for your app or service, you can save yourself lots of time and trouble by using existing NuGet packages that fulfill that need. Diese Pakete können von der öffentlichen Auflistung auf nuget.org oder von einer privaten Quelle stammen, die von Ihrer Organisation oder einem Drittanbieter bereitgestellt wird.These packages can come from the public collection on nuget.org, or a private source that's provided by your organization or another third party.

Suchen von PaketenFinding packages

Wenn Sie nuget.org besuchen oder die Benutzeroberfläche des Paket-Managers in Visual Studio öffnen, wird Ihnen eine Liste der Pakete angezeigt, die nach der Gesamtanzahl der Downloads sortiert ist.When you visit nuget.org or open the Package Manager UI in Visual Studio, you see a list of packages sorted by total downloads. Dadurch werden Ihnen sofort die für Millionen von .NET-Projekten am häufigsten verwendeten Pakete angezeigt.This immediately shows you the most widely-used packages across the millions of .NET projects. Es bestehen gute Chancen, dass mindestens eins der auf den ersten Seiten aufgelisteten Pakete für Ihre Projekte nützlich ist.There's a good chance, then, that at least some of the packages listed on the first few pages will be useful in your projects.

Die Standardansicht von nuget.org/packages zeigt die beliebtesten Pakete an

Beachten Sie die Option Vorabversion einbeziehen in der oberen rechten Ecke der Seite.Notice the Include prerelease option on the upper right of the page. Wenn diese ausgewählt ist, zeigt nuget.org alle Version von Paketen an, einschließlich Betaversionen und anderen frühen Releases.When selected, nuget.org shows all versions of packages including beta and other early releases. Deaktivieren Sie diese Option, um nur stabile Releases anzuzeigen.To show only stable released, clear the option.

Bei besonderen Anforderungen ist das Suchen mithilfe von Tags (im Paket-Manager von Visual Studio oder in einem Portal wie nuget.org) die am häufigsten verwendete Vorgehensweise, um geeignete Pakete zu ermitteln.For specific needs, searching by tags (within the Visual Studio Package Manager or on a portal like nuget.org) is the most common means of discovering a suitable package. Wenn Sie beispielsweise nach „json“ suchen, werden alle NuGet-Pakete aufgelistet, die mit diesem Schlüsselwort kategorisiert sind und daher einen Bezug zum JSON-Datenformat aufweisen.For example, searching on "json" lists all NuGet packages that are tagged with that keyword and thus have some relationship to the JSON data format.

Suchergebnisse für „json“ auf nuget.org

Sie können ebenfalls mithilfe der Paket-ID suchen, falls Ihnen diese bekannt ist.You can also search using the package ID, if you know it. Weitere Informationen finden Sie unterSyntax der Suche.See Search Syntax below.

Derzeit sind die Suchergebnisse nur nach Relevanz sortiert, sodass Sie die ersten Seiten der Ergebnisse nach Paketen durchsuchen sollten, die Ihren Anforderungen entsprechen. Alternativ können Sie Ihre Suchbegriffe präzisieren, um spezifischere Ergebnisse zu erhalten.At this time, search results are sorted only by relevance, so you generally want to look through at least the first few pages of results for packages that suit your needs, or refine your search terms to be more specific.

Unterstützt das Paket das Zielframework des Projekts?Does the package support my project's target framework?

NuGet installiert ein Paket nur in ein Projekt, wenn die vom Paket unterstützten Frameworks das Zielframework des Projekts enthalten.NuGet installs a package into a project only if that package's supported frameworks include the project's target framework. Wenn das Paket nicht kompatibel ist, gibt NuGet einen Fehler aus.If the package is not compatible, NuGet issues an error.

Einige Pakete führen die unterstützten Frameworks direkt im Katalog von nuget.org auf, viele Pakete enthalten diese Auflistung jedoch nicht, da solche Daten nicht erforderlich sind.Some packages list their supported frameworks directly in the nuget.org gallery, but because such data is not required, many packages do not include that list. Derzeit gibt es keine Möglichkeit, nuget.org nach Paketen zu durchsuchen, die ein bestimmtes Zielframework unterstützen, dieses Feature befindet sich jedoch in der Diskussion. Weitere Informationen dazu finden Sie unter NuGet Issue 2936 (NuGet-Problem 2936).At present there is no means to search nuget.org for packages that support a specific target framework (the feature is under consideration, see NuGet Issue 2936).

Es stehen jedoch zwei andere Möglichkeiten zur Verfügung, um unterstützte Frameworks zu bestimmen:Fortunately, you can determine supported frameworks through two other means:

  1. Versuchen Sie, ein Paket mithilfe des Befehls Install-Package über die Konsole des NuGet-Paket-Managers in ein Projekt zu installieren.Attempt to install a package into a project using the Install-Package command in the NuGet Package Manager Console. Wenn das Paket nicht kompatibel ist, zeigt dieser Befehl Ihnen die unterstützten Frameworks des Pakets an.If the package is incompatible, this command shows you the package's supported frameworks.

  2. Laden Sie das Paket von dessen Seite auf nuget.org herunter, indem Sie den Link Manueller Download unter Info verwenden.Download the package from its page on nuget.org using the Manual download link under Info. Ändern Sie die Erweiterung von .nupkg in .zip, und öffnen Sie die Datei, um den Inhalt des lib-Ordners zu überprüfen.Change the extension from .nupkg to .zip, and open the file to examine the content of its lib folder. Dort werden Ihnen die Unterordner für jedes unterstützte Framework angezeigt. Jeder dieser Unterordner ist mit einem Zielframeworkmoniker benannt (TFM, siehe Target Frameworks (Zielframeworks)).There you see subfolders for each of the supported frameworks, where each subfolder is named with a target framework moniker (TFM; see Target Frameworks). Wenn unter lib keine Unterordner und nur eine einzige DLL angezeigt werden, müssen Sie versuchen, das Paket in Ihrem Projekt zu installieren, um die Kompatibilität zu ermitteln.If you see no subfolders under lib and only a single DLL, then you must attempt to install the package in your project to discover its compatibility.

Vorabversionen von PaketenPre-release packages

Viele Paketersteller stellen Vorschau- und Betaversionen bereit, da weiterhin Verbesserungen vorgenommen werden und Feedback zu den aktuellen Revisionen gewünscht wird.Many package authors make preview and beta releases available as they continue to make improvements and seek feedback on their latest revisions.

Standardmäßig zeigt nuget.org auch Vorabversionen von Paketen in den Suchergebnissen an.By default, nuget.org shows pre-release packages in search results. Deaktivieren Sie die Option Vorabversion einbeziehen in der oberen rechten Ecke der Seite, um ausschließlich nach stabilen Releases zu suchen.To search only stable releases, clear the Include prerelease option on the upper right of the page

Kontrollkästchen „Vorabversion einbeziehen“ auf nuget.org

Wenn Sie Visual Studio und die NuGet- und dotnet-CLI-Tools verwenden, enthält NuGet standardmäßig keine Vorabversionen.In Visual Studio, and when using the NuGet and dotnet CLI tools, NuGet does not include pre-release versions by default. Führen Sie folgende Schritte aus, um dieses Verhalten zu ändern:To change this behavior, do the following steps:

  • Benutzeroberfläche des Paket-Managers in Visual Studio: Aktivieren Sie in der Benutzeroberfläche NuGet-Pakete verwalten das Kontrollkästchen Vorabversion einbeziehen.Package Manager UI in Visual Studio: In the Manage NuGet Packages UI, set the Include prerelease box. Wenn Sie dieses Kontrollkästchen aktivieren oder deaktivieren, wird die Benutzeroberfläche des Paket-Managers sowie die Liste der verfügbaren Versionen aktualisiert, die Sie installieren können.Setting or clearing this box refreshes the Package Manager UI and the list of available versions you can install.

    Kontrollkästchen „Vorabversion einbeziehen“ in Visual Studio

  • Paket-Manager-Konsole: Verwenden Sie den Schalter -IncludePrerelease zusammen mit den Befehlen Find-Package, Get-Package, Install-Package, Sync-Package und Update-Package.Package Manager Console: Use the -IncludePrerelease switch with the Find-Package, Get-Package, Install-Package, Sync-Package, and Update-Package commands. Lesen Sie hierzu die PowerShell-Referenz.Refer to the PowerShell Reference.

  • nuget.exe-CLI: Verwenden Sie den Schalter -prerelease zusammen mit den Befehlen install, update, delete und mirror.nuget.exe CLI: Use the -prerelease switch with the install, update, delete, and mirror commands. Weitere Informationen finden Sie in der NuGet CLI reference (Referenz für die NuGet-CLI).Refer to the NuGet CLI reference

  • dotnet.exe-CLI: Geben Sie die genaue Vorabversion mit dem Argument -v an.dotnet.exe CLI: Specify the exact pre-release version using the -v argument. Informationen finden Sie in der Referenz zu „dotnet add package“.Refer to the dotnet add package reference.

Native C++-PaketeNative C++ packages

NuGet unterstützt native C++-Pakete, die in C++-Projekten in Visual Studio verwendet werden können.NuGet supports native C++ packages can that can be used in C++ projects in Visual Studio. Dadurch wird der Kontextmenübefehl NuGet-Pakete verwalten für Projekte aktiviert, das Zielframework native eingeführt und die Integration von MSBuild bereitgestellt.This enables the Manage NuGet Packages context-menu command for projects, introduces a native target framework, and provides MSBuild integration.

Suchen Sie mit tag:native, um native Pakete auf nuget.org zu finden.To find native packages on nuget.org, search using tag:native. Solche Paketen stellen üblicherweise .targets- und .props-Dateien bereit, die NuGet automatisch importiert, wenn das Paket zu einem Projekt hinzugefügt wird.Such packages typically provide .targets and .props files, which NuGet imports automatically when the package is added to a project.

Auswerten von PaketenEvaluating packages

Am besten bewerten Sie, ob ein Paket nützlich ist, indem Sie es herunterladen und in Ihrem Code ausprobieren (alle Pakete auf nuget.org werden übrigens routinemäßig auf Viren überprüft).The best way to evaluate the usefulness of a package is to download it and try it out in your code (all packages on nuget.org are routinely scanned for viruses, by the way). Jedes beliebte Paket wurde schließlich zuerst nur von wenigen Entwicklern verwendet. Sie könnten somit zu den Erstanwendern gehören.After all, every highly popular package got started with only a few developers using it, and you might be one of the early adopters!

Allerdings bedeutet das Verwenden eines NuGet-Pakets auch, dass eine Abhängigkeit davon entsteht. Darum sollten Sie sicherstellen, dass das Paket robust und zuverlässig ist.At the same time, using a NuGet package means taking a dependency on it, so you want to make sure it's robust and reliable. Da es sehr zeitaufwändig ist, ein Paket zu installieren und direkt zu testen, können Sie ebenfalls die Informationen auf der Angebotsseite eines Pakets verwenden, um mehr über die Qualität des Pakets zu erfahren.Because installing and directly testing a package is time-consuming, you can also learn a lot about a package's quality by using the information on a package's listing page:

  • Downloadstatistiken: Der Abschnitt Statistiken auf der Seite für Pakete auf nuget.org zeigt die Gesamtanzahl der Downloads, die Anzahl von Downloads der aktuellen Version und die durchschnittliche Anzahl von Downloads pro Tag.Downloads statistics: on the package page on nuget.org, the Statistics section shows total downloads, downloads of the most recent version, and average downloads per day. Eine hohe Zahl gibt hierbei an, dass viele andere Entwickler eine Abhängigkeit von diesem Paket erstellt haben. Das bedeutet, dass das Paket sich bewiesen hat.Larger numbers indicate that many other developers have taken a dependency on the package, which means that it has proven itself.

    Downloadstatistiken auf der Angebotsseite eines Pakets

  • GitHub-Verwendung: Auf Seite für Pakete listet der Abschnitt GitHub Usage die öffentlichen GitHub-Repositorys auf, die von diesem Paket abhängen und viele Sterne auf GitHub besitzen.GitHub Usage: on the package page, the GitHub Usage section lists public GitHub repositories that depend on this package and that have a high number of stars on GitHub. Die Anzahl von Sternen eines GitHub-Repositorys deutet in der Regel auf die Beliebtheit dieses Repositorys bei GitHub-Benutzern hin (je mehr Sterne desto beliebter das Repository).A GitHub repository's number of stars generally indicates how popular that repository is with GitHub users (more stars usually means more popular). Besuchen Sie die Seite für die ersten Schritte auf GitHub, um weitere Informationen zum Bewertungssystem mit Sternen und Repositorys auf GitHub zu erhalten.Please visit GitHub's Getting Started page for more information on GitHub's star and repository ranking system.

    GitHub-Verwendung

    Hinweis

    Der Abschnitt zur GitHub-Verwendung wird automatisch und in regelmäßigen Abständen ohne Überprüfung durch Personen für einzelne Repositorys generiert und dient allein zu Informationszwecken, um Ihnen GitHub-Repositorys zu veranschaulichen, die vom Paket abhängig sind und bei GitHub-Benutzern beliebt sind.A package's GitHub Usage section is generated automatically, periodically, without human review of individual repositories, and solely for informational purposes in order to show you GitHub repositories that depend on the package and that are popular with GitHub users.

  • Versionsverlauf: Auf der Seite für Pakete wird unter Info das Datum des aktuellen Updates angezeigt, außerdem können Sie dort den Versionsverlauf überprüfen.Version history: on the package page, look under Info for the date of the most recent update and examine the Version History. Ein gut verwaltetes Paket verfügt über aktuelle Updates und einen umfangreichen Versionsverlauf.A well-maintained package has recent updates and a rich version history. Ein schlecht verwaltetes Paket verfügt über wenige Updates bzw. wurde häufig für längere Zeit nicht mehr aktualisiert.Neglected packages have few updates and often haven't been updated in some time.

    Versionsverlauf auf der Angebotsseite eines Pakets

  • Aktuelle Installationen: Klicken Sie auf der Seite für Pakete unter Statistiken auf View full stats (Vollständige Statistiken anzeigen). Die Seite „Vollständige Statistiken“ zeigt die Installationen des Pakets in den letzten sechs Wochen nach Versionsnummer geordnet an.Recent installs: on the package page under Statistics, select View full stats. The full stats page shows the package installs over the last six weeks by version number. Ein Paket, das aktiv von anderen Entwicklern verwendet wird, ist häufig eine bessere Wahl als eines, das nicht aktiv verwendet wird.A package that other developers are actively using is typically a better choice than one that's not.

  • Support: Klicken Sie auf der Seite für Pakete unter Info auf Projektwebsite (falls vorhanden), um die vom Autor angegebenen Supportoptionen anzuzeigen.Support: on the package page under Info, select Project Site (if available) to see what support options the author provides. Ein Projekt mit einer dedizierten Website wird üblicherweise besser unterstützt.A project with a dedicated site is generally better supported.

  • Entwicklerverlauf: Wählen Sie auf der Seite für Pakete unter Besitzer einen Besitzer aus, um anzuzeigen, welche anderen Pakete dieser veröffentlicht hat.Developer history: on the package page under Owners, select an owner to see what other packages they've published. Bei Entwicklern, die mehrere Pakete veröffentlicht haben, ist es wahrscheinlicher, dass diese ihre Arbeit auch zukünftig fortsetzen.Those with multiple packages are more likely to continue supporting their work in the future.

  • Open Source-Beiträge: Manche Pakete befinden sich in Open Source-Repositorys. Dadurch wird es Entwicklern ermöglicht, die von diesen abhängig sind, Problembehebungen und Verbesserungen von Features direkt beizutragen.Open source contributions: many packages are maintained in open-source repositories, making it possible for developers depending on them to directly contribute bug fixes and feature improvements. Der Beitragsverlauf eines Pakets zeigt ebenfalls an, wie viele Entwickler sich aktiv am Paket beteiligen.The contribution history of any given package is also a good indicator of how many developers are actively involved.

  • Kontaktieren der Besitzer: Neue Entwickler können gleichermaßen dazu fähig sein, für Sie nützliche Pakete zu erstellen. Es ist daher ratsam, diesen eine Chance zu geben, NuGet mit neuen Inhalten zu bereichern.Interview the owners: new developers can certainly be equally committed to producing great packages for you to use, and it's good to give them a chance to bring something new to the NuGet ecosystem. Nutzen Sie deshalb die Option Contact Owners (Besitzer kontaktieren), die sich auf der Angebotsseite unter Info befindet, um Paketentwickler direkt zu kontaktieren.With this in mind, reach out directly to the package developers through the Contact Owners option under Info on the listing page. Diese arbeiten sicherlich gerne mit Ihnen zusammen, um Ihre Vorstellungen umzusetzen.Chances are, they'll be happy to work with you to serve your needs!

  • Reservierte Paket-ID-Präfixe: Viele Paketbesitzer haben ein reserviertes Paket-ID-Präfix beantragt und erhalten.Reserved Package ID Prefixes: many package owners have applied for and have been granted a reserved package ID prefix. Wenn Sie auf nuget.org oder in Visual Studio das Häkchen neben einer Paket-ID sehen, bedeutet dies, dass der Paketbesitzer unsere Kriterien für die ID-Präfixreservierung erfüllt hat.When you see the visual checkmark next to a package ID on nuget.org, or in Visual Studio, that means that the package owner has met our criteria for ID prefix reservation. Dies bedeutet, dass der Paketbesitzer sich und sein Paket eindeutig identifizieren kann.This means the package owner is being clear on identifying themselves and their package.

Hinweis

Sie sollten stets die Lizenzbedingungen eines Pakets beachten. Diese können Sie anzeigen, indem Sie auf der Angebotsseite eines Pakets auf nuget.org auf License Info (Lizenzinformationen) klicken. Wenn ein Paket keine Lizenzbedingungen angibt, kontaktieren Sie den Paketbesitzer direkt, indem Sie den Link Contact owners (Besitzer kontaktieren) auf der Seite für Pakete verwenden.Always be mindful of a package's license terms, which you can see by selecting License Info on a package's listing page on nuget.org. If a package does not specify license terms, contact the package owner directly using the Contact owners link on the package page. Microsoft lizenziert kein geistiges Eigentum von Drittanbietern für Pakete und ist nicht verantwortlich für die durch Drittanbieter bereitgestellten Inhalte.Microsoft does not license any intellectual property to you from third party package providers and is not responsible for information provided by third parties.

Veralten der Lizenz-URLLicense URL deprecation

Beim Übergang von licenseUrl zu Lizenz haben einige NuGet-Clients und NuGet-Feeds möglicherweise in einigen Fällen noch nicht die Möglichkeit, Informationen zur Lizenzierung anzuzeigen.As we transition from licenseUrl to license, some NuGet clients and NuGet feeds may not yet have the ability to surface licensing information in some cases. 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.To maintain backward compatibility, the license URL points to this document which talks about how to retrieve the license information in such cases.

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, undIf clicking on the license URL for a package brought you to this page, it implies the package contains a license file and

  • Sie sind mit einem Feed verbunden, der noch nicht weiß, wie die neuen Lizenzinformationen zu interpretieren sind und dem Client angezeigt werden müssen, ODERYou are connected to a feed that does not yet know how to interpret and surface the new license information to the client OR
  • Sie verwenden einen Client, der noch nicht weiß, wie die neuen Lizenzinformationen zu interpretieren und zu lesen sind, die potenziell durch den Feed bereitgestellt werden, ODERYou are using a client that does not yet know how to interpret and read the new license information that is potentially provided by the feed OR
  • eine Kombination aus beidem.A combination of both

So könnten Sie die Informationen lesen, die in der Lizenzdatei des Pakets enthalten sind:Here is how you could read the information contained in the license file inside the package:

  1. Laden Sie das NuGet-Paket herunter, und entzippen Sie seinen Inhalt in einen Ordner.Download the NuGet package, and unzip its contents to a folder.
  2. Öffnen Sie die .nuspec-Datei, die sich im Stammverzeichnis dieses Ordners befindet.Open the .nuspec file which would be at the root of that folder.
  3. Sie sollte ein Tag wie <license type="file">license\license.txt</license> haben.It should have a tag like <license type="file">license\license.txt</license>. Dies bedeutet, dass die Lizenzdatei den Namen license.txt hat und sich in einem Ordner namens license befindet, der sich auch im Stammverzeichnis dieses Ordners befindet.This implies the license file is named license.txt and it is inside a folder called license which would also be at the root of that folder.
  4. Navigieren Sie zum license-Ordner, und öffnen Sie die license.txt-Datei.Navigate to the license folder and open the license.txt file.

Weitere Informationen zum MSBuild-Äquivalent zum Festlegen der Lizenz in .nuspec finden Sie unter Verpacken eines Lizenzausdrucks oder einer Lizenzdatei.For the MSBuild equivalent to setting the license in the .nuspec, take a look at Packing a license expression or a license file.

SuchsyntaxSearch Syntax

Die NuGet-Paketsuche auf nuget.org, über die NuGet-CLI und mit der Erweiterung des NuGet-Paket-Managers in Visual Studio funktionieren auf die gleiche Weise.NuGet package search works the same on nuget.org, from the NuGet CLI, and within the NuGet Package Manager extension in Visual Studio. Im Allgemeinen wird die Suche auf Schlüsselwörter und auf die Paketbeschreibungen angewendet.In general, search is applied to keywords as well as package descriptions.

  • Filtern: Sie können einen Suchbegriff auf eine bestimmte Eigenschaft anwenden, indem Sie die Syntax <property>:<term> verwenden. Hierbei kann <property> (Groß-/Kleinschreibung wird nicht berücksichtigt) id, packageid, version, title, tags, author, description, summary oder owner entsprechen.Filtering: You can apply a search term to a specific property by using the syntax <property>:<term> where <property> (case-insensitive) can be id, packageid, version, title, tags, author, description, summary, and owner. Sie können nach mehreren Eigenschaften auf einmal suchen.You can search for multiple properties at the same time. Als Suchergebnisse für die id-Eigenschaft werden Übereinstimmungen mit Teilzeichenfolgen angezeigt, während für packageid und owner exakte Übereinstimmungen (ohne Beachtung von Groß-/Kleinschreibung) angezeigt werden.Searches on the id property are substring matches, whereas packageid and owner uses an exact, case-insensitive match. Beispiele:Examples:
PackageId:jquery             # Match the package ID in an exact, case-insensitive manner

owner:microsoft              # Match the owner in an exact, case-insensitive manner

id:NuGet.Core                # Match any part of the ID property
Id:"Nuget.Core"
ID:jQuery
id:jquery id:ui              # Search for multiple terms in the ID
id:jquery tags:validation    # Search multiple properties

invalid:jquery ui            # Unsupported properties are ignored, so this
                             # is the same as searching on ui