Présentation de NuGetAn introduction to NuGet

Il est essentiel pour toute plateforme de développement moderne de proposer un mécanisme permettant aux développeurs de créer, de partager et d’exploiter le code qui leur est utile.An essential tool for any modern development platform is a mechanism through which developers can create, share, and consume useful code. Souvent, ce code est groupé en « packages » contenant le code compilé (sous forme de DLL) ainsi que tout le contenu nécessaire aux projets qui les utilisent.Often such code is bundled into "packages" that contain compiled code (as DLLs) along with other content needed in the projects that consume these packages.

Dans le cas de .NET (y compris .NET Core), le mécanisme de partage de code pris en charge par Microsoft est NuGet. Il définit la façon dont les packages .NET sont créés, hébergés et utilisés, et fournit des outils pour chacun de ces rôles.For .NET (including .NET Core), the Microsoft-supported mechanism for sharing code is NuGet, which defines how packages for .NET are created, hosted, and consumed, and provides the tools for each of those roles.

Pour faire simple, un package NuGet est un fichier ZIP avec l’extension .nupkg, qui contient du code compilé (des DLL), d’autres fichiers liés à ce code et un manifeste descriptif qui inclut des informations comme le numéro de version du package.Put simply, a NuGet package is a single ZIP file with the .nupkg extension that contains compiled code (DLLs), other files related to that code, and a descriptive manifest that includes information like the package's version number. Les développeurs qui ont du code à partager créent des packages et les publient sur un hôte public ou privé.Developers with code to share create packages and publish them to a public or private host. Les consommateurs récupèrent ces packages auprès des hôtes correspondants, les ajoutent à leurs projets, puis appellent leurs fonctionnalités dans le code de leur projet.Package consumers obtain those packages from suitable hosts, add them to their projects, and then call a package's functionality in their project code. NuGet gère ensuite lui-même tous les détails intermédiaires.NuGet itself then handles all of the intermediate details.

NuGet prenant en charge à la fois les hôtes privés et l’hôte nuget.org public, il est possible d’utiliser des packages NuGet pour partager du code dont une organisation ou un groupe de travail a l’exclusivité.Because NuGet supports private hosts alongside the public nuget.org host, you can use NuGet packages to share code that's exclusive to an organization or a work group. Ils représentent également un moyen pratique d’intégrer son propre code pour l’utiliser uniquement dans ses propres projets.You can also use NuGet packages as a convenient way to factor your own code for use in nothing but your own projects. En bref, un package NuGet est une unité de code partageable, qui ne nécessite ni n’implique aucun mode de partage en particulier.In short, a NuGet package is a shareable unit of code, but does not require nor imply any particular means of sharing.

Flux des packages entre les créateurs, les hôtes et les consommateursThe flow of packages between creators, hosts, and consumers

Dans son rôle d’hôte public, NuGet gère lui-même le référentiel central de plus de 100 000 packages uniques sur NuGet.org. Ces packages sont utilisés par des millions de développeurs .NET/.NET Core tous les jours.In its role as a public host, NuGet itself maintains the central repository of over 100,000 unique packages at nuget.org. These packages are employed by millions of .NET/.NET Core developers every day. NuGet vous permet également d’héberger des packages à titre privé dans le cloud (par exemple sur Azure DevOps), sur un réseau privé ou même seulement sur votre système de fichiers local.NuGet also enables you to host packages privately in the cloud (such as on Azure DevOps), on a private network, or even on just your local file system. Ces packages sont ainsi réservés aux développeurs qui ont accès à l’hôte, ce qui permet de les mettre à la disposition d’un groupe spécifique de consommateurs.By doing so, those packages are available to only those developers that have access to the host, giving you the ability to make packages available to a specific group of consumers. Les options sont expliquées dans Hébergement de vos propres flux NuGet.The options are explained on Hosting your own NuGet feeds. Les options de configuration permettent également de choisir précisément quels hôtes seront accessibles à chaque ordinateur, ce qui garantit que les packages proviendront de sources spécifiques plutôt que d’un référentiel public comme nuget.org.Through configuration options, you can also control exactly which hosts can be accessed by any given computer, thereby ensuring that packages are obtained from specific sources rather than a public repository like nuget.org.

Quelle que soit sa nature, un hôte sert de point de connexion entre les créateurs et les consommateurs de packages.Whatever its nature, a host serves as the point of connection between package creators and package consumers. Les créateurs produisent des packages NuGet pratiques et les publient sur un hôte.Creators build useful NuGet packages and publish them to a host. Les consommateurs recherchent des packages pratiques et compatibles sur les hôtes accessibles, les téléchargent et incluent ces packages dans leurs projets.Consumers then search for useful and compatible packages on accessible hosts, downloading and including those packages in their projects. Une fois installés dans un projet, les API des packages sont disponibles pour le reste du code du projet.Once installed in a project, the packages' APIs are available to the rest of the project code.

Relation entre les créateurs de packages, les hôtes de packages et les consommateurs de packages

Compatibilité du ciblage de packagesPackage targeting compatibility

Un package « compatible » est un package qui contient des assemblies créés pour au moins une version cible de .NET Framework compatible avec celle du projet qui utilise le package.A "compatible" package means that it contains assemblies built for at least one target .NET framework that's compatible with the consuming project's target framework. Les développeurs peuvent soit créer des packages propres à une version, comme avec les contrôles UWP, soit prendre en charge un éventail plus large de versions cibles.Developers can create packages that are specific to one framework, as with UWP controls, or they can support a wider range of targets. Pour optimiser la compatibilité d’un package, ils ciblent .NET Standard, que tous les projets .NET et .NET Core peuvent exploiter.To maximize a package's compatibility, developers target .NET Standard, which all .NET and .NET Core projects can consume. C’est le moyen le plus efficace tant pour les créateurs que pour les consommateurs, car un package unique (qui contient généralement un seul assembly) fonctionne pour tous les projets.This is the most efficient means for both creators and consumers, as a single package (usually containing a single assembly) works for all consuming projects.

Les développeurs de packages qui ont besoin d’API extérieures à .NET Standard, quant à eux, créent un assembly distinct pour chacune des versions cibles de .NET Framework qu’ils souhaitent prendre en charge, et les intègrent tous dans le même package (« ciblage multiple »).Package developers who require APIs outside of .NET Standard, on the other hand, create separate assemblies for the different target frameworks they want to support and include all of those assemblies in the same package (which is called "multi-targeting"). Lorsque un consommateur installe un package de ce type, NuGet extrait seulement les assemblies nécessaires au projet.When a consumer installs such a package, NuGet extracts only those assemblies that are needed by the project. Ceci réduit l’encombrement du package dans l’application finale et/ou dans les assemblys produits par ce projet.This minimizes the package's footprint in the final application and/or assemblies produced by that project. Un package à ciblage multiple est, bien sûr, plus difficile à gérer pour son créateur.A multi-targeting package is, of course, more difficult for its creator to maintain.

Notes

L’approche consistant à cibler .NET Standard remplace la précédente, qui impliquait d’utiliser différentes versions cibles de bibliothèques de classes portables (PCL).Targeting .NET Standard supersedes the previous approach of using various portable class library (PCL) targets. Cette documentation se concentre donc sur la création de packages pour .NET Standard.This documentation therefore focuses on creating packages for .NET Standard.

Outils NuGetNuGet tools

En plus de la prise en charge de l’hébergement, NuGet fournit également différents outils utilisés à la fois par les créateurs et par les consommateurs.In addition to hosting support, NuGet also provides a variety of tools used by both creators and consumers. Pour obtenir des outils spécifiques, consultez Installation des outils clients NuGet.See Installing NuGet client tools for how to obtain specific tools.

OutilTool PlateformesPlatforms Scénarios applicablesApplicable Scenarios DescriptionDescription
Interface CLI .NETdotnet CLI ToutAll Création, consommationCreation, Consumption Outil CLI pour les bibliothèques .NET Core et .NET Standard et pour les projets de style SDK qui ciblent le .NET Framework (consultez Attribut SDK).CLI tool for .NET Core and .NET Standard libraries, and for SDK-style projects that target .NET Framework (see SDK attribute). Propose certaines des fonctionnalités de l’interface CLI NuGet directement dans la chaîne d’outils .NET Core.Provides certain NuGet CLI capabilities directly within the .NET Core tool chain. Tout comme l’interface CLI nuget.exe, l’interface CLI dotnet n’interagit pas avec les projets Visual Studio.As with the nuget.exe CLI, the dotnet CLI does not interact with Visual Studio projects.
Interface CLI de nuget.exenuget.exe CLI ToutAll Création, consommationCreation, Consumption Outil CLI pour les bibliothèques .NET Framework et les projets qui ne sont pas de style SDK ciblant les bibliothèques .NET Standard.CLI tool for .NET Framework libraries and non-SDK-style projects that target .NET Standard libraries. Fournit toutes les fonctionnalités de NuGet, avec certaines commandes s’appliquant spécifiquement aux créateurs de package, certaines seulement aux consommateurs et d’autres aux deux.Provides all NuGet capabilities, with some commands applying specifically to package creators, some applying only to consumers, and others applying to both. Par exemple, les créateurs de packages utilisent la commande nuget pack pour créer un package à partir de différents assemblies et des fichiers associés, les consommateurs utilisent nuget install pour inclure des packages dans un dossier de projet, et tous utilisent nuget config pour définir les variables de configuration NuGet.For example, package creators use the nuget pack command to create a package from various assemblies and related files, package consumers use nuget install to include packages in a project folder, and everyone uses nuget config to set NuGet configuration variables. L’interface CLI NuGet, indépendante de la plateforme, n’interagit pas avec les projets Visual Studio.As a platform-agnostic tool, the NuGet CLI does not interact with Visual Studio projects.
Console du Gestionnaire de packagePackage Manager Console Visual Studio sur WindowsVisual Studio on Windows ConsommationConsumption Propose des commandes PowerShell permettant d’installer et de gérer des packages dans les projets Visual Studio.Provides PowerShell commands for installing and managing packages in Visual Studio projects.
Interface utilisateur du Gestionnaire de packagePackage Manager UI Visual Studio sur WindowsVisual Studio on Windows ConsommationConsumption Propose une interface utilisateur facile d’utilisation permettant d’installer et de gérer des packages dans les projets Visual Studio.Provides an easy-to-use UI for installing and managing packages in Visual Studio projects.
Interface utilisateur de gestion de NuGetManage NuGet UI Visual Studio pour MacVisual Studio for Mac ConsommationConsumption Propose une interface utilisateur facile d’utilisation permettant d’installer et de gérer des packages dans les projets Mac.Provide an easy-to-use UI for installing and managing packages in Visual Studio for Mac projects.
MSBuildMSBuild WindowsWindows Création, consommationCreation, Consumption Offre la possibilité de créer et de restaurer directement des packages utilisés dans un projet avec la chaîne d’outils MSBuild.Provides the ability to create packages and restore packages used in a project directly through the MSBuild tool chain.

Comme on peut le constater, les outils NuGet à utiliser dépendent fortement de l’activité (création, utilisation ou publication de packages), ainsi que de la plateforme utilisée.As you can see, the NuGet tools you work with depend greatly on whether you're creating, consuming, or publishing packages, and the platform on which you're working. Les créateurs de packages en sont en général également des consommateurs, car ils s’appuient sur des fonctionnalités qui existent dans d’autres packages NuGet.Package creators are typically also consumers, as they build on top of functionality that exists in other NuGet packages. Bien sûr, ces packages peuvent à leur tour dépendre d’autres packages.And those packages, of course, may in turn depend on still others.

Pour plus d’informations, commencez par les articles Workflow de création de packages et Workflow d’utilisation de packages.For more information, start with the Package creation workflow and Package consumption workflow articles.

Gestion des dépendancesManaging dependencies

La facilité à s’appuyer sur le travail des autres est l’un des aspects les plus puissants d’un système de gestion des packages.The ability to easily build on the work of others is one of most powerful features of a package management system. En conséquence, la plus grande partie du travail effectué par NuGet consiste à gérer cette arborescence ou ce « graphique » de dépendance pour chaque projet.Accordingly, much of what NuGet does is managing that dependency tree or "graph" on behalf of a project. Autrement dit, vous devez vous préoccuper seulement des packages que vous utilisez directement dans un projet.Simply said, you need only concern yourself with those packages that you're directly using in a project. Si l’un d’entre eux utilise lui-même d’autres packages (et ainsi de suite), NuGet se charge de toutes ces dépendances des niveaux inférieurs.If any of those packages themselves consume other packages (which can, in turn, consume still others), NuGet takes care of all those down-level dependencies.

L’illustration suivante montre un projet qui dépend de cinq packages, qui à leur tour dépendent de plusieurs autres.The following image shows a project that depends on five packages, which in turn depend on a number of others.

Exemple de graphe des dépendances NuGet pour un projet .NET

Notez que certains packages apparaissent plusieurs fois dans le graphe des dépendances.Notice that some packages appear multiple times in the dependency graph. Par exemple, il existe trois consommateurs différents du package B, et chaque consommateur peut également spécifier une version différente pour ce package (non représenté).For example, there are three different consumers of package B, and each consumer might also specify a different version for that package (not shown). C’est un cas courant, en particulier pour les packages les plus utilisés.This is a common occurrence, especially for widely-used packages. Heureusement, NuGet se charge de tout le travail en identifiant exactement la version du package B qui convient à tous les consommateurs.NuGet fortunately does all the hard work to determine exactly which version of package B satisfies all consumers. NuGet fait ensuite de même pour tous les autres packages, quelle que soit la profondeur du graphique de dépendance.NuGet then does the same for all other packages, no matter how deep the dependency graph.

Pour plus d’informations sur la façon dont NuGet réalise ce service, consultez Résolution des dépendances.For more details on how NuGet performs this service, see Dependency resolution.

Suivi des références et restauration de packagesTracking references and restoring packages

Compte tenu de la simplicité de déplacement de projets entre différents ordinateurs de développeurs, référentiels de contrôle de code source, serveurs de builds, etc., il est très peu pratique de conserver les assemblys binaires de packages NuGet directement liés à un projet.Because projects can easily move between developer computers, source control repositories, build servers, and so forth, it's highly impractical to keep the binary assemblies of NuGet packages directly bound to a project. Cela aurait pour effet d’encombrer inutilement chacune des copies du projet (et ainsi de gaspiller de l’espace dans les référentiels de contrôle de code source).Doing so would make each copy of the project unnecessarily bloated (and thereby waste space in source control repositories). Il serait également très difficile de mettre à jour les fichiers binaires des packages, car la nouvelle version devrait s’appliquer à toutes les copies du projet.It would also make it very difficult to update package binaries to newer versions as updates would have to be applied across all copies of the project.

NuGet gère plutôt une simple liste de références des packages dont dépend le projet, qui englobe les dépendances de niveau supérieur et de niveau inférieur.NuGet instead maintains a simple reference list of the packages upon which a project depends, including both top-level and down-level dependencies. Autrement dit, lorsque un package est installé dans un projet à partir d’un hôte, NuGet enregistre l’identificateur et le numéro de version du package dans cette liste de références.That is, whenever you install a package from some host into a project, NuGet records the package identifier and version number in the reference list. (La désinstallation d’un package, bien sûr, le supprime de la liste.) NuGet fournit ensuite un moyen de restaurer tous les packages référencés à la demande, comme décrit dans restauration de packages.(Uninstalling a package, of course, removes it from the list.) NuGet then provides a means to restore all referenced packages upon request, as described on Package restore.

Une liste des références NuGet est créée à l’installation du package et elle peut être utilisée pour restaurer des packages ailleurs.

Avec seulement la liste des références, NuGet peut à tout moment réinstaller — autrement dit, restaurer — tous ces packages à partir d’hôtes publics et privés.With only the reference list, NuGet can then reinstall—that is, restore—all of those packages from public and/or private hosts at any later time. Pour valider un projet dans le contrôle de code source ou le partager par un autre moyen, il suffit d’inclure la liste des références et d’exclure les fichiers binaires des packages (consultez la section Packages et contrôle de code source.)When committing a project to source control, or sharing it in some other way, you include only the reference list and exclude any package binaries (see Packages and source control.)

L’ordinateur qui reçoit un projet, par exemple un serveur de builds obtenant une copie du projet dans le cadre d’un système de déploiement automatisé, demande simplement à NuGet de restaurer les dépendances quand elles sont nécessaires.The computer that receives a project, such as a build server obtaining a copy of the project as part of an automated deployment system, simply asks NuGet to restore dependencies whenever they're needed. Les systèmes de build, comme Azure DevOps, fournissent des étapes de « restauration NuGet » à cette fin.Build systems like Azure DevOps provide "NuGet restore" steps for this exact purpose. De même, lorsque les développeurs récupèrent une copie d’un projet (par exemple, en clonant un référentiel), ils peuvent appeler une commande du type nuget restore (interface CLI NuGet), dotnet restore (interface CLI dotnet) ou Install-Package (console du Gestionnaire de package) pour avoir tous les packages nécessaires.Similarly, when developers obtain a copy of a project (as when cloning a repository), they can invoke command like nuget restore (NuGet CLI), dotnet restore (dotnet CLI), or Install-Package (Package Manager Console) to obtain all the necessary packages. Visual Studio, pour sa part, restaure automatiquement les packages lors de la création d’un projet (tant que la restauration automatique est activée, comme l’explique la page Restauration de package).Visual Studio, for its part, automatically restores packages when building a project (provided that automatic restore is enabled, as described on Package restore).

Le rôle principal de NuGet pour les développeurs est clairement de gérer cette liste de références pour le compte de votre projet, et de fournir les moyens de restaurer efficacement (et de mettre à jour) les packages référencés.Clearly, then, NuGet's primary role where developers are concerned is maintaining that reference list on behalf of your project and providing the means to efficiently restore (and update) those referenced packages. Cette liste est gérée dans un des deux formats de gestion des packages, nommés :This list is maintained in one of two package management formats, as they're called:

  • PackageReference (ou « Références des packages dans les fichiers projet ») : (NuGet 4.0+) Gère la liste des dépendances de niveau supérieur d’un projet directement dans le fichier projet ; aucun fichier distinct n’est nécessaire.PackageReference (or "package references in project files") | (NuGet 4.0+) Maintains a list of a project's top-level dependencies directly within the project file, so no separate file is needed. Un fichier associé, obj/project.assets.json, est généré dynamiquement pour gérer le graphique de dépendance global des packages utilisés par un projet, ainsi que toutes les dépendances de bas niveau.An associated file, obj/project.assets.json, is dynamically generated to manage the overall dependency graph of the packages that a project uses along with all down-level dependencies. PackageReference est toujours utilisé par les projets .NET Core.PackageReference is always used by .NET Core projects.

  • packages.config: (NuGet 1.0+) Un fichier XML qui gère une liste plate de toutes les dépendances du projet, y compris les dépendances des autres packages installés.packages.config: (NuGet 1.0+) An XML file that maintains a flat list of all dependencies in the project, including the dependencies of other installed packages. Les packages installés ou restaurés sont stockés dans un dossier packages.Installed or restored packages are stored in a packages folder.

Le format de gestion des packages utilisé dépend du type de projet, ainsi que de la version disponible de NuGet (ou de Visual Studio).Which package management format is employed in any given project depends on the project type, and the available version of NuGet (and/or Visual Studio). Pour savoir quel format est utilisé, recherchez packages.config dans la racine du projet après avoir installé votre premier package.To check what format is being used, simply look for packages.config in the project root after installing your first package. Si vous ne possédez pas ce fichier, recherchez l’élément <PackageReference> directement dans le fichier projet.If you don't have that file, look in the project file directly for a <PackageReference> element.

Si vous avez le choix, nous vous recommandons d’utiliser PackageReference.When you have a choice, we recommend using PackageReference. packages.config est conservé pour des raisons d’héritage et ne fait plus l’objet d’un développement actif.packages.config is maintained for legacy purposes and is no longer under active development.

Conseil

Diverses commandes CLI nuget.exe, comme nuget install, n’ajoutent pas automatiquement le package à la liste de référence.Various nuget.exe CLI commands, like nuget install, do not automatically add the package to the reference list. La liste est mise à jour lors de l’installation d’un package avec le Gestionnaire de package de Visual Studio (interface utilisateur ou console) et l’interface CLI dotnet.exe.The list is updated when installing a package with the Visual Studio Package Manager (UI or Console), and with dotnet.exe CLI.

Autres fonctionnalités de NuGetWhat else does NuGet do?

Nous avons vu jusqu’ici les caractéristiques suivantes de NuGet :So far you've learned the following characteristics of NuGet:

  • NuGet propose le référentiel central nuget.org, qui prend en charge l’hébergement privé.NuGet provides the central nuget.org repository with support for private hosting.
  • NuGet fournit les outils dont les développeurs ont besoin pour créer, publier et consommer des packages.NuGet provides the tools developers need for creating, publishing, and consuming packages.
  • Plus important encore, NuGet gère la liste des références des packages utilisés dans le projet, et a la capacité de restaurer et de mettre à jour ces packages à partir de cette liste.Most importantly, NuGet maintains a reference list of packages used in a project and the ability to restore and update those packages from that list.

Pour que ces processus fonctionnent efficacement, NuGet effectue certaines optimisations en arrière-plan.To make these processes work efficiently, NuGet does some behind-the-scenes optimizations. En particulier, NuGet gère un cache de package et un dossier de packages globaux pour accélérer l’installation et la réinstallation.Most notably, NuGet manages a package cache and a global packages folder to shortcut installation and reinstallation. Le cache évite d’avoir à télécharger un package déjà installé sur l’ordinateur.The cache avoids downloading a package that's already been installed on the machine. Grâce au dossier de packages globaux, plusieurs projets peuvent partager le même package installé, ce qui réduit l’encombrement global de NuGet sur l’ordinateur.The global packages folder allows multiple projects to share the same installed package, thereby reducing NuGet's overall footprint on the computer. Le cache et le dossier de packages globaux sont également très pratiques pour restaurer fréquemment un grand nombre de packages, comme sur un serveur de builds.The cache and global packages folder are also very helpful when you're frequently restoring a larger number of packages, as on a build server. Pour plus d’informations sur ces mécanismes, consultez Gérer les dossiers de packages globaux et de cache.For more details on these mechanisms, see Managing the global packages and cache folders.

Pour un projet donné, NuGet gère le graphique de dépendance global, ce qui implique de résoudre à nouveau des références multiples à différentes versions du même package.Within an individual project, NuGet manages the overall dependency graph, which again includes resolving multiple references to different versions of the same package. Il est fréquent qu’un projet ait une dépendance d’un ou plusieurs packages qui ont eux-mêmes les mêmes dépendances.It's quite common that a project takes a dependency on one or more packages that themselves have the same dependencies. Par exemple, certains des packages utilitaires les plus pratiques de nuget.org sont utilisés par beaucoup d’autres packages.Some of the most useful utility packages on nuget.org are employed by many other packages. Pris dans sa totalité, le graphique de dépendance peut facilement comporter dix références distinctes à des versions différentes du même package.In the entire dependency graph, then, you could easily have ten different references to different versions of the same package. Pour éviter d’importer plusieurs versions de ce package dans l’application elle-même, NuGet repère la version utilisable par tout le monde.To avoid bringing multiple versions of that package into the application itself, NuGet sorts out which single version can be used by all consumers. (Pour plus d’informations, consultez la page Résolution des dépendances.)(For more information, see Dependency Resolution.)

Au-delà, NuGet gère toutes les spécifications relatives à la structure des packages (y compris les symboles de localisation et de débogage) et à la façon dont ils sont référencés (y compris les plages de versions et les versions préliminaires). .) NuGet fournit également différentes API pour travailler avec ses services par programme, et prend en charge les développeurs qui écrivent des extensions Visual Studio et des modèles de projet.Beyond that, NuGet maintains all the specifications related to how packages are structured (including localization and debug symbols) and how they are referenced (including version ranges and pre-release versions.) NuGet also provides various APIs to work with its services programmatically, and provides support for developers who write Visual Studio extensions and project templates.

Prenez un moment pour parcourir la table des matières de cette documentation : toutes ces fonctionnalités y sont représentées, ainsi que des notes de publication remontant aux débuts de NuGet.Take a moment to browse the table of contents for this documentation, and you see all of these capabilities represented there, along with release notes dating back to NuGet's beginnings.

Commentaires, contributions et problèmesComments, contributions, and issues

Enfin, les commentaires et les contributions à cette documentation sont les bienvenus — sélectionnez simplement les commandes Commentaires et Modifier en haut d’une page, ou consultez le référentiel de documents et la liste des documents consacrés aux problèmes sur GitHub.Finally, we very much welcome comments and contributions to this documentation—just select the Feedback and Edit commands on the top of any page, or visit the docs repository and docs issue list on GitHub.

Nous apprécions également les contributions à NuGet à proprement parler sur ses différents référentiels GitHub ; vous trouverez les problèmes de NuGet sur https://github.com/NuGet/home/issues.We also welcome contributions to NuGet itself through its various GitHub repositories; NuGet issues can be found on https://github.com/NuGet/home/issues.

Profitez de votre expérience NuGet !Enjoy your NuGet experience!