Gestionnaire NuGet
Aperçu
Ce skill assure une gestion cohérente et sécurisée des packages NuGet sur les projets .NET. Il privilégie l'utilisation de la CLI dotnet pour préserver l'intégrité du projet et applique un workflow strict de vérification et restauration pour les mises à jour de versions.
Prérequis
- .NET SDK installé (généralement .NET 8.0 SDK ou ultérieur, ou une version compatible avec la solution cible).
- CLI
dotnetdisponible sur votrePATH. jq(processeur JSON) OU PowerShell (pour la vérification de version avecdotnet package search).
Règles fondamentales
- NE JAMAIS modifier directement les fichiers
.csproj,.propsouDirectory.Packages.propspour ajouter ou supprimer des packages. Utilisez toujours les commandesdotnet add packageetdotnet remove package. - L'ÉDITION DIRECTE est UNIQUEMENT autorisée pour modifier les versions de packages existants.
- LES MISES À JOUR DE VERSION doivent suivre le workflow obligatoire :
- Vérifier que la version cible existe sur NuGet.
- Déterminer si les versions sont gérées par projet (
.csproj) ou de façon centralisée (Directory.Packages.props). - Mettre à jour la chaîne de version dans le fichier approprié.
- Exécuter immédiatement
dotnet restorepour vérifier la compatibilité.
Workflows
Ajouter un package
Utilisez dotnet add [<PROJECT>] package <PACKAGE_NAME> [--version <VERSION>].
Exemple : dotnet add src/MyProject/MyProject.csproj package Newtonsoft.Json
Supprimer un package
Utilisez dotnet remove [<PROJECT>] package <PACKAGE_NAME>.
Exemple : dotnet remove src/MyProject/MyProject.csproj package Newtonsoft.Json
Mettre à jour les versions de packages
Lors d'une mise à jour de version, suivez ces étapes :
-
Vérifier l'existence de la version : Vérifiez que la version existe en utilisant la commande
dotnet package searchavec correspondance exacte et formatage JSON. Avecjq:dotnet package search <PACKAGE_NAME> --exact-match --format json | jq -e '.searchResult[].packages[] | select(.version == "<VERSION>")'Avec PowerShell :(dotnet package search <PACKAGE_NAME> --exact-match --format json | ConvertFrom-Json).searchResult.packages | Where-Object { $_.version -eq "<VERSION>" } -
Déterminer la gestion des versions :
- Recherchez
Directory.Packages.propsà la racine de la solution. S'il est présent, les versions doivent y être gérées via<PackageVersion Include="Package.Name" Version="1.2.3" />. - S'il est absent, vérifiez les fichiers
.csprojindividuels pour<PackageReference Include="Package.Name" Version="1.2.3" />.
- Recherchez
-
Appliquer les modifications : Modifiez le fichier identifié avec la nouvelle chaîne de version.
-
Vérifier la stabilité : Exécutez
dotnet restoresur le projet ou la solution. En cas d'erreur, annulez la modification et enquêtez.
Exemples
Utilisateur : « Ajouter Serilog au projet WebApi »
Action : Exécutez dotnet add src/WebApi/WebApi.csproj package Serilog.
Utilisateur : « Mettre à jour Newtonsoft.Json en 13.0.3 dans la solution entière »
Action :
- Vérifier que 13.0.3 existe :
dotnet package search Newtonsoft.Json --exact-match --format json(et analyser la sortie pour confirmer la présence de « 13.0.3 »). - Trouver où elle est définie (par exemple,
Directory.Packages.props). - Éditer le fichier pour mettre à jour la version.
- Exécuter
dotnet restore.