Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans ce guide de démarrage rapide, vous utilisez Microsoft Visual Studio pour créer un package NuGet à partir d’une bibliothèque de classes .NET. Ensuite, vous publiez le package sur nuget.org à l’aide d’un outil d’interface de ligne de commande (CLI).
Ce guide de démarrage rapide concerne uniquement les utilisateurs Windows. Si vous utilisez une autre plateforme, utilisez la CLI .NET.
Prerequisites
Visual Studio 2026 avec une charge de travail liée aux .NET.
Vous pouvez installer gratuitement l’édition Community 2026 de visualstudio.microsoft.com, ou vous pouvez utiliser l’édition Professionnel ou Entreprise.
Visual Studio 2017 et versions ultérieures incluent automatiquement les fonctionnalités NuGet lorsque vous installez une charge de travail liée à .NET.
La CLI .NET.
Pour Visual Studio 2017 et versions ultérieures, l’interface CLI .NET est automatiquement installée avec n’importe quelle charge de travail associée à .NET. Vous pouvez également installer le SDK .NET pour obtenir l’interface CLI .NET. L’interface CLI .NET est requise pour les projets .NET qui utilisent le format de style SDK (et un attribut sdk). Le modèle de bibliothèque de classes .NET par défaut dans Visual Studio 2017 et versions ultérieures utilise l’attribut sdk.
Important
Si vous utilisez un projet de style non SDK, suivez les procédures décrites dans Createz et publiez un package à l'aide de Visual Studio (.NET Framework, Windows) à la place pour créer et publier le package. Pour cet article, l’interface CLI .NET est recommandée. Bien que vous puissiez publier n’importe quel package NuGet à l’aide de l’interface CLI NuGet, certaines des étapes décrites dans cet article sont spécifiques aux projets de style SDK et à l’interface CLI .NET. La CLI de NuGet est utilisée pour les projets non-SDK (généralement des projets .NET Framework).
Un compte gratuit sur nuget.org. Vous devez inscrire et confirmer le compte avant de pouvoir charger un package NuGet.
Interface en ligne de commande NuGet. Vous pouvez l’installer en le téléchargeant à partir de nuget.org. Ajoutez le fichier nuget.exe à un dossier approprié et ajoutez ce dossier à votre
PATHvariable d’environnement.
Créer un projet de bibliothèque de classes
Vous pouvez utiliser un projet de bibliothèque de classes .NET existant pour le code que vous souhaitez empaqueter ou en créer un en effectuant les étapes suivantes :
Dans Visual Studio, sélectionnez File>New>Project/Solution.
Dans la fenêtre Créer un projet , accédez à la zone de recherche et entrez la bibliothèque de classes.
Dans la liste résultante des modèles de projet, sélectionnez le modèle bibliothèque de classes qui répond aux critères suivants :
- A la description Un projet pour créer une bibliothèque de classes qui cible .NET ou .NET Standard
- A une balise C#
Cliquez sur Suivant.
Dans la fenêtre Configurer votre nouveau projet, pour Nom du projet, entrez AppLogger, puis sélectionnez Suivant.
Dans la fenêtre Informations supplémentaires , sélectionnez une valeur appropriée pour Framework, puis sélectionnez Créer.
Si vous ne savez pas quelle infrastructure sélectionner, la dernière est un bon choix et peut être facilement modifiée ultérieurement. Pour plus d’informations sur l’infrastructure à utiliser, consultez Quand cibler
netx.0etnetstandard.(Facultatif) Pour ce guide de démarrage rapide, vous n’avez pas besoin d’écrire de code supplémentaire pour le package NuGet, car la bibliothèque de classes de modèle est suffisante pour créer un package. Toutefois, si vous souhaitez ajouter du code fonctionnel au package, incluez le code suivant :
namespace AppLogger { public class Logger { public void Log(string text) { Console.WriteLine(text); } } }
Configurer les propriétés du package
Après avoir créé votre projet, vous pouvez configurer les propriétés du package NuGet en procédant comme suit :
Dans Solution Explorer, sélectionnez votre project, puis Project><project-name> Properties, où <project-name> est le nom de votre project.
Développez le nœud Package , puis sélectionnez Général.
Le nœud Package apparaît uniquement pour les projets de style SDK dans Visual Studio. Si vous ciblez un projet de style non SDK (généralement .NET projets Framework), migratiez le projet ou consultez Create et publiez un package à l'aide de Visual Studio (.NET Framework, Windows) pour obtenir des instructions pas à pas.
Pour l’ID de paquet, donnez à votre paquet un ID unique.
Important
Vous devez donner au package un identificateur unique sur l’hôte que vous utilisez, par exemple nuget.org. Sinon, une erreur se produit. Pour ce guide de démarrage rapide, nous vous recommandons d’inclure l’exemple ou le test dans l’ID, car l’étape de publication rend le package visible publiquement. Pour plus d’informations sur la sélection d’un ID, consultez les meilleures pratiques pour l’identificateur de package.
Remplissez toutes les autres propriétés souhaitées. Pour les packages créés pour la consommation publique, portez une attention particulière à la propriété Tags , car les balises aident d’autres personnes à trouver votre package et à comprendre ce qu’il fait.
Toutes les propriétés entrent dans le manifeste .nuspec que Visual Studio crée pour le projet. Pour obtenir un tableau montrant comment les propriétés Microsoft Build (MSBuild) dans les projets de style SDK correspondent à .nuspec propriétés de fichier, consultez pack target. Pour obtenir une description des propriétés du fichier .nuspec , consultez la référence .nuspec.
(Facultatif) Pour afficher les propriétés directement dans le fichier AppLogger.csproj project, sélectionnez Project>Edit Project Fichier.
Le fichier AppLogger.csproj s’ouvre dans un nouvel onglet.
Cette option est disponible pour les projets qui utilisent l’attribut de style SDK.
Exécuter la commande pack
Pour créer un package NuGet à partir de votre projet, procédez comme suit :
Sélectionnez Build>Configuration Manager, puis définissez la valeur de Active solution configuration sur Release.
Dans Solution Explorer, cliquez avec le bouton droit sur le projet AppLogger, puis sélectionnez Pack.
Visual Studio génère le projet et crée le fichier .nupkg.
Examinez la fenêtre Sortie pour obtenir des informations détaillées, notamment le chemin d’accès au fichier de package. Dans cet exemple, l’assembly généré se trouve dans le dossier bin\Release\net8.0, qui convient à une cible .NET 8.0 :
1>------ Build started: Project: AppLogger, Configuration: Release Any CPU ------ 1> AppLogger -> d:\proj\AppLogger\AppLogger\bin\Release\net8.0\AppLogger.dll 1> Successfully created package 'd:\proj\AppLogger\AppLogger\bin\Release\Contoso.App.Logger.Test.1.0.0.nupkg'. ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
Si la commande Pack est manquante dans le menu, votre projet n’est probablement pas un projet de style SDK. Exécutez l’une des étapes suivantes :
- Upgrader le projet afin de pouvoir utiliser l’interface CLI .NET.
- Suivez les instructions de Create et publiez un package à l’aide de Visual Studio (.NET Framework, Windows) pour utiliser l’interface CLI NuGet pour créer et publier un package NuGet à partir de votre projet.
(Facultatif) Générer un paquet pendant la compilation
Vous pouvez configurer Visual Studio pour générer automatiquement le package NuGet lorsque vous générez le projet :
Sélectionnez votre project dans Solution Explorer, puis sélectionnez Project><project-name> Properties, où <project-name> est le nom de votre project (AppLogger dans ce cas).
Développez le nœud Package , sélectionnez Général, puis sélectionnez Générer un package NuGet à la build.
Note
Lorsque vous sélectionnez cette option, le temps supplémentaire nécessaire pour générer le package augmente le temps de génération global de votre projet.
(Facultatif) Emballer avec MSBuild
En guise d’alternative à l’utilisation de la commande de menu Pack , vous pouvez utiliser la msbuild -t:pack commande pour générer un package NuGet à partir de votre projet. NuGet 4.x+ et MSBuild 15.1+ prennent en charge une pack cible lorsque votre projet contient les données de package nécessaires.
Une fois votre projet ouvert dans Solution Explorer, ouvrez une fenêtre d’invite de commandes en sélectionnant Tools>Command Line>Développer Command Prompt.
La fenêtre d’invite de commandes s’ouvre dans le répertoire de votre projet.
Exécutez la commande suivante :
msbuild -t:pack.
Pour plus d’informations, consultez Créer un package NuGet à l’aide de MSBuild.
Publier le package
Après avoir créé un fichier .nupkg, procédez comme suit pour le publier dans nuget.org. Vous pouvez utiliser l’interface CLI .NET ou NuGet CLI pour la publication. Vous utilisez également une clé API que vous achetez à partir de nuget.org.
Note
Nuget.org analyse tous les packages chargés pour détecter les virus et rejette tous les packages contenant des virus. Nuget.org analyse également régulièrement tous les packages répertoriés existants.
Les packages que vous publiez sur nuget.org sont publiquement visibles par d’autres développeurs, sauf si vous les supprimez. Pour héberger des packages en privé, consultez Hébergement de vos propres flux NuGet.
Acquérir votre clé API
Avant de publier votre package NuGet, créez une clé API :
Connectez-vous à votre compte nuget.org ou créez un compte si vous n’en avez pas déjà un.
Dans le coin supérieur droit, sélectionnez votre nom d’utilisateur, puis sélectionnez Clés API.
Sélectionnez Créer, puis entrez un nom pour votre clé.
Sous Sélectionner des périmètres, sélectionnez Push.
Sous Sélectionner des packages, pour modèle Glob, entrez un astérisque (*).
Cliquez sur Créer.
Sélectionnez Copier pour copier la nouvelle clé.
Important
- Conservez toujours votre clé API comme secret. La clé API est semblable à un mot de passe que tout le monde peut utiliser pour gérer des packages en votre nom. Supprimez ou régénérez votre clé API si elle est accidentellement révélée.
- Enregistrez votre clé dans un emplacement sécurisé, car vous ne pouvez pas copier la clé ultérieurement. Si vous revenez à la page de clé API, vous devez régénérer la clé pour la copier. Vous pouvez également supprimer la clé API si vous ne souhaitez plus envoyer de packages.
Délimitation permet de créer des clés API distinctes à des fins différentes. Chaque clé a un délai d’expiration et vous pouvez limiter la clé à des packages ou des modèles glob spécifiques. Vous devez également étendre chaque clé à des opérations spécifiques : envoyer (push) de nouveaux packages et versions de package, envoyer (push) uniquement de nouvelles versions de package ou annuler la liste.
Grâce à la définition de périmètre, vous pouvez créer des clés API pour différentes personnes qui gèrent des packages pour votre organisation afin qu’elles aient uniquement les autorisations dont elles ont besoin.
Pour plus d’informations, consultez Clés API délimitées.
Publier à l’aide de l’interface CLI .NET ou de l’interface CLI NuGet
Vous pouvez utiliser l’interface CLI .NET ou NuGet CLI pour envoyer (push) un package au serveur et le publier. Accédez à l’onglet de l’outil que vous souhaitez utiliser.
L’interface CLI .NET (dotnet.exe) est l’alternative recommandée à l’interface CLI NuGet.
Dans le dossier qui contient le fichier .nupkg , exécutez la commande suivante. Remplacez <package-file> par le nom de votre fichier .nupkg , puis remplacez <API-key> par votre clé API.
dotnet nuget push <package-file> --api-key <API-key> --source https://api.nuget.org/v3/index.json
Les résultats affichent les résultats du processus de publication :
Pushing <package-file> to 'https://www.nuget.org/api/v2/package'...
PUT https://www.nuget.org/api/v2/package/
Created https://www.nuget.org/api/v2/package/ 2891ms
Your package was pushed.
Pour plus d’informations, consultez dotnet nuget push.
Erreurs lors de la publication
Lorsque vous exécutez la push commande, vous rencontrez parfois une erreur. Par exemple, vous pouvez obtenir une erreur dans les situations suivantes :
- Votre clé API n’est pas valide ou a expiré.
- Vous essayez de publier un package qui a un identificateur qui existe déjà sur l’hôte.
- Vous apportez des modifications à un package publié, mais vous oubliez de mettre à jour le numéro de version avant de réessayer de le publier.
Le message d’erreur indique généralement la source du problème.
Par exemple, supposons que l’identificateur Contoso.App.Logger.Test existe sur nuget.org. Si vous essayez de publier un package avec cet identificateur, vous obtenez l’erreur suivante :
Response status code does not indicate success: 403 (The specified API key is invalid, has expired, or does not have permission to access the specified package.).
Pour résoudre ce problème, vérifiez l’étendue, la date d’expiration et la valeur de votre clé API. Si la clé est valide, l’erreur indique que l’identificateur du package existe déjà sur l’hôte. Pour résoudre le problème, modifiez l’identificateur du package de façon à ce qu’il soit unique, régénérez le projet, recréez le fichier .nupkg et réessayez la push commande.
Gérer le package publié
Une fois votre package publié, vous recevez un e-mail de confirmation. Pour afficher le package publié, accédez à nuget.org, sélectionnez votre nom d’utilisateur dans le coin supérieur droit, puis sélectionnez Gérer les packages.
Note
L’indexation de votre package peut prendre un certain temps et s’afficher dans les résultats de recherche où d’autres personnes peuvent la trouver. Pendant cette période, votre package apparaît sous Packages non répertoriés et la page du package affiche le message suivant :
Maintenant que votre package NuGet est publié à nuget.org, d’autres développeurs peuvent l’utiliser dans leurs projets.
Si vous créez un package qui n’est pas utile (par exemple, cet exemple de package à partir d’une bibliothèque de classes vide) ou si vous ne souhaitez pas que le package soit visible, vous pouvez annuler la liste du package pour le masquer dans les résultats de la recherche :
Une fois le package affiché sous Packages publiés dans la page Gérer les packages , sélectionnez l’icône de crayon en regard de la description du package.
Dans la page suivante, sélectionnez Listing, décochez la case Liste dans les résultats de recherche, puis sélectionnez Enregistrer.
Le package apparaît désormais sous Packages non répertoriés dans Gérer les packages et n’apparaît plus dans les résultats de recherche.
Note
Pour éviter que votre package de test soit actif sur nuget.org, vous pouvez envoyer (push) au site de test nuget.org à l’adresse https://int.nugettest.org. Notez que les packages chargés dans int.nugettest.org peuvent ne pas être conservés.
Ajouter un fichier en lecture-moi ou un autre fichier
Vous pouvez inclure un fichier lisez-moi ou d'autres types de fichiers dans votre paquet.
Ajouter un fichier lisez-moi
Pour ajouter un fichier lisez-moi au paquet, procédez comme suit :
Ouvrez le fichier du projet en sélectionnant Projet>Modifier le fichier du projet.
Dans le fichier projet, accédez à l’élément
PropertyGroup, puis ajoutez unPackageReadmeFileélément enfant :<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> ... <PackageReadmeFile>readme.md</PackageReadmeFile> ... </PropertyGroup> </Project>Accédez à l’élément
ItemGroup, puis ajoutez unNoneélément enfant :<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> ... <PackageReadmeFile>readme.md</PackageReadmeFile> ... </PropertyGroup> <ItemGroup> ... <None Include="readme.md" Pack="true" PackagePath="\" /> ... </ItemGroup> </Project>
Dans l’exemple précédent, la propriété spécifie un fichier nommé readme.md dans la racine du projet. Une fois que vous avez généré, emballé et publié votre paquet, nuget.org affiche le contenu du fichier readme sur la page du paquet. Visual Studio affiche également le contenu de ce fichier dans l’interface utilisateur Package Manager.
Par exemple, la capture d’écran suivante montre le fichier lisez-moi pour le paquet HtmlAgilityPack :
Ajouter d’autres fichiers
Pour ajouter d’autres fichiers à un package, ouvrez le fichier project en sélectionnant Project>Edit Project Fichier. Ajoutez ensuite un Content élément enfant à l’élément ItemGroup :
<ItemGroup>
<Content Include="other-content.md">
<Pack>true</Pack>
<PackagePath>\</PackagePath>
</Content>
</ItemGroup>
Pour plus d’informations, consultez Inclusion de contenu dans un package.
Vidéos connexes
Pour plus d’informations sur l’utilisation de NuGet pour la gestion des packages, consultez .NET Gestion des packages avec NuGet pour débutants et NuGet pour les débutants.
Contenu connexe
Pour savoir comment créer un package NuGet avec Visual Studio .NET Framework, consultez Créer un package à l’aide de l’interface CLI nuget.exe.
Pour plus d’informations sur NuGet, consultez les articles suivants :