PackageSmith
Les versions des packages NuGet là où elles sont écrites : la version la plus récente après chaque ligne de package, tout l’historique au survol, une mise à jour avec Ctrl+. — et les packages vulnérables ou dépréciés signalés avant que la build ne le fasse.
Gratuit · Visual Studio 2022 et 2026 · 14 langues d’interface · aucune télémétrie
Pourquoi PackageSmith

Les versions dépassées d’un coup d’œil
Inutile d’ouvrir la fenêtre NuGet pour savoir ce qui est ancien : la version la plus récente figure après chaque package, en vert pour un patch, en jaune pour une minor, en orange pour une major.
Les mises à jour sûres d’abord
Une vulnérabilité connue apparaît en rouge directement sur la ligne, avec la version la plus proche qui la corrige ; un package déprécié indique son remplaçant.
Vos sources uniquement
Les versions proviennent des sources de package de votre NuGet.config — nuget.org ou le flux de votre entreprise. Seuls les noms et versions des packages sont demandés ; rien sur vous ou votre projet n’est envoyé.
Gratuit, sans contrepartie
Ni abonnement, ni version « pro », ni collecte de données, ni messages dans la fenêtre Sortie ou au démarrage. La seule chose que nous vous demanderons — quand vous l’aurez utilisée pendant un certain temps — c’est une note sur le Marketplace. Fonctionne avec Visual Studio 2022 et 2026, x64 et ARM64.
Fonctionnalités
- La version la plus récente après chaque package, colorée selon l’ampleur du saut ; un discret
✓ à jourpour les packages à jour. - Packages vulnérables et dépréciés : la gravité d’une vulnérabilité connue et le remplaçant d’un package déprécié.
- Une carte au survol : la description, la version la plus récente de chaque branche plus récente avec sa date, et la mise à jour à un clic.
- Mettre à jour avec Ctrl+. : vers le patch, la minor ou la major la plus récente, ou tous les packages du fichier dans leur version majeure — une seule modification, une seule annulation.
- Tous les fichiers de packages :
.csproj,.vbproj,.fsproj,Directory.Packages.props(gestion centralisée des packages),.props,.targetsetpackages.config;Version="$(ContosoVersion)"est résolu à partir du fichier. - Vos sources de package issues de NuGet.config, des réponses mises en cache entre les sessions, un mode hors connexion.
Les versions en fin de ligne
Après chaque ligne PackageReference, PackageVersion et package : rien de voyant quand le package est à jour, sinon la version la plus récente dans la couleur du saut. Les versions non listées ne sont jamais proposées ; les préversions uniquement aux packages qui en utilisent déjà une, sauf si un paramètre en décide autrement.

| Après la ligne | Signification |
|---|---|
| ✓ à jour | Le package est à sa version la plus récente. |
| → 8.0.4 patch | Seul le troisième nombre change : des correctifs. |
| → 6.5.1 minor | Le deuxième nombre change : de nouvelles fonctionnalités, sans changements cassants prévus. |
| → 5.0.2 major | Le premier nombre change : c’est là que se trouvent les changements cassants. |
| ⚠ vulnérable · élevée | La version utilisée présente une vulnérabilité de sécurité connue, avec sa gravité. |
| déprécié · utiliser … | Les auteurs ont déprécié le package et indiquent celui à utiliser à la place. |
Une carte au survol
Laissez le pointeur sur une version dans le code ou sur le texte après la ligne : la carte affiche la description, la version la plus récente de chaque branche plus récente (10.0.13, 9.0.10, 8.0.21 pour un package en 8.0.0) avec sa date, le nombre de versions plus récentes restantes, la vulnérabilité avec la mise à jour la plus proche qui en est exempte, et les boutons Mettre à jour vers …, Ouvrir sur nuget.org et Site du projet. Un clic sur une version de la liste l’applique.

Mettre à jour avec Ctrl+.
Curseur sur une ligne de package, Ctrl+. : le patch, la minor et la major les plus récentes sont proposés séparément, la mise à jour sûre est donc toujours à une touche. Mettre à jour tous les packages de ce fichier dans leur version majeure amène chaque package à sa version la plus récente de la même version majeure — les majors restent une décision à part. Une version issue d’une propriété ($(ContosoVersion)) est mise à jour là où le fichier la définit. Le fichier est modifié comme lors d’un changement manuel : l’annulation fonctionne, et Visual Studio restaure les packages comme d’habitude.

Paramètres
Outils → Options → SmithWorks → PackageSmith. Chaque option est décrite.
| Option | Par défaut |
|---|---|
| Afficher la version la plus récente après chaque package | activé |
| Marquer les packages actuels avec « ✓ à jour » | activé |
| Proposer des préversions pour tous les packages | désactivé |
| Marquer les packages introuvables dans vos sources | désactivé |
| Signaler les packages vulnérables et dépréciés | activé |
| Carte au survol | activé |
| Mettre à jour avec Ctrl+. | activé |
| Vérifier de nouveau après | 1 heure |
| Hors connexion | désactivé |
| Demander une note sur le Marketplace | activé |
Les paramètres sont stockés dans %LocalAppData%\PackageSmith, les versions en cache à côté.

FAQ
PackageSmith envoie-t-il des données ?
Il demande à vos sources de package (issues de NuGet.config ; nuget.org à défaut) les versions des packages de vos fichiers — les mêmes requêtes que celles de Visual Studio lors de la restauration. Rien d’autre n’est envoyé : aucune télémétrie, aucun nom de projet, rien sur vous. Avec Hors connexion activé, aucune requête n’est faite.
Le flux de mon entreprise exige une connexion. Est-ce que ça fonctionne ?
Pas encore : les flux qui exigent des informations d’identification sont ignorés et leurs packages restent sans annotation — aucune réponse erronée n’est affichée. Les flux v3 publics (nuget.org, flux d’entreprise ouverts) fonctionnent.
Pourquoi n’y a-t-il rien après certains packages ?
Rien n’est affiché quand la version est une plage ou un caractère générique ([1.0,2.0), 13.*), quand une propriété est définie dans un autre fichier ou quand aucune source n’a répondu. Activez Marquer les packages introuvables dans vos sources pour voir les packages que toutes les sources déclarent ne pas avoir.
Est-ce que ça fonctionne avec la gestion centralisée des packages ?
Oui : les versions sont affichées dans Directory.Packages.props après chaque PackageVersion, et VersionOverride dans un projet est affiché aussi.
La mise à jour restaure-t-elle les packages ?
PackageSmith ne fait que modifier le fichier. Visual Studio restaure les packages après la modification, comme lorsque vous modifiez la version à la main.
Est-ce que ça fonctionne avec LensSmith ?
Oui. Les deux écrivent en fin de ligne et se partagent cet espace : la version vient en premier, suivie d’un avertissement NuGet de LensSmith.
Où signaler un problème ou proposer une fonctionnalité ?
Ouvrez un ticket dans le dépôt Feedback sur GitHub — il y a des formulaires pour les bogues et les idées (modifiez les noms confidentiels). Vous pouvez aussi utiliser l’onglet Q&A sur le Marketplace.
Historique des versions
1.0.1
- Une demande unique de note sur le Marketplace, une fois l’extension devenue utile — avec Plus tard et Ne plus demander, et une option pour la désactiver.
1.0.0
- Première version publique.