LazowskiAnton · Extensions

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

Le même fichier projet sans et avec PackageSmith : les versions les plus récentes après les lignes de package

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

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.

Un fichier Directory.Packages.props avec les versions les plus récentes, un package vulnérable et un package déprécié
Après la ligneSignification
✓ à jourLe package est à sa version la plus récente.
→ 8.0.4 patchSeul le troisième nombre change : des correctifs.
→ 6.5.1 minorLe deuxième nombre change : de nouvelles fonctionnalités, sans changements cassants prévus.
→ 5.0.2 majorLe premier nombre change : c’est là que se trouvent les changements cassants.
⚠ vulnérable · élevéeLa 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.

La carte d’un package vulnérable avec la version la plus récente de chaque branche

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.

L’ampoule avec les mises à jour patch, minor et major d’un package

Paramètres

Outils → Options → SmithWorks → PackageSmith. Chaque option est décrite.

OptionPar défaut
Afficher la version la plus récente après chaque packageactivé
Marquer les packages actuels avec « ✓ à jour »activé
Proposer des préversions pour tous les packagesdésactivé
Marquer les packages introuvables dans vos sourcesdésactivé
Signaler les packages vulnérables et dépréciésactivé
Carte au survolactivé
Mettre à jour avec Ctrl+.activé
Vérifier de nouveau après1 heure
Hors connexiondésactivé
Demander une note sur le Marketplaceactivé

Les paramètres sont stockés dans %LocalAppData%\PackageSmith, les versions en cache à côté.

Page d’options de PackageSmith
La page d’options.

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

1.0.0