PackageSmith
Wersje pakietów NuGet tam, gdzie są zapisane: najnowsza wersja po każdym wierszu pakietu, cała historia po najechaniu, aktualizacja przez Ctrl+. — a pakiety z lukami w zabezpieczeniach i przestarzałe oznaczone, zanim zrobi to kompilacja.
Za darmo · Visual Studio 2022 i 2026 · 14 języków interfejsu · bez telemetrii
Dlaczego PackageSmith

Przestarzałe od razu widać
Nie trzeba otwierać okna NuGet, żeby sprawdzić, co jest stare: najnowsza wersja stoi po każdym pakiecie — na zielono dla patcha, na żółto dla minora, na pomarańczowo dla majora.
Najpierw bezpieczne aktualizacje
Znana luka w zabezpieczeniach świeci na czerwono w samym wierszu, razem z najbliższą wersją, która ją naprawia; przestarzały pakiet wskazuje swój zamiennik.
Tylko Twoje źródła
Wersje pochodzą ze źródeł pakietów z Twojego NuGet.config — nuget.org lub kanału Twojej firmy. Zapytania dotyczą tylko nazw i wersji pakietów; nic o Tobie ani o Twoim projekcie nie jest wysyłane.
Za darmo, bez haczyków
Bez subskrypcji, bez wersji „pro”, bez zbierania danych i bez komunikatów w oknie „Dane wyjściowe” ani przy uruchamianiu. Jedyne, o co kiedykolwiek poprosimy — gdy już przez jakiś czas będziesz z niego korzystać — to ocena w Marketplace. Działa w Visual Studio 2022 i 2026, x64 i ARM64.
Funkcje
- Najnowsza wersja po każdym pakiecie, w kolorze zależnym od wielkości skoku; przygaszone
✓ najnowszaprzy aktualnych pakietach. - Pakiety z lukami w zabezpieczeniach i przestarzałe: waga znanej luki i zamiennik przestarzałego pakietu.
- Karta po najechaniu: opis, najnowsza wersja każdej nowszej linii z datą i aktualizacja jednym kliknięciem.
- Aktualizacja przez Ctrl+.: do najnowszego patcha, minora lub majora albo wszystkie pakiety pliku w obrębie ich wersji głównej — jedna edycja, jedno Cofnij.
- Każdy plik z pakietami:
.csproj,.vbproj,.fsproj,Directory.Packages.props(centralne zarządzanie pakietami),.props,.targetsipackages.config;Version="$(ContosoVersion)"jest rozwiązywane z pliku. - Twoje źródła pakietów z NuGet.config, odpowiedzi w pamięci podręcznej między sesjami, przełącznik trybu offline.
Wersje na końcu wiersza
Po każdym wierszu PackageReference, PackageVersion i package: nic krzykliwego, gdy pakiet jest aktualny, w przeciwnym razie najnowsza wersja w kolorze skoku. Wersje ukryte (unlisted) nigdy nie są proponowane; wersje wstępne tylko pakietom, które już ich używają, chyba że ustawienie mówi inaczej.

| Po wierszu | Znaczenie |
|---|---|
| ✓ najnowsza | Pakiet jest w najnowszej wersji. |
| → 8.0.4 patch | Zmienia się tylko trzecia liczba: poprawki. |
| → 6.5.1 minor | Zmienia się druga liczba: nowe funkcje, bez zamierzonych zmian powodujących niezgodność. |
| → 5.0.2 major | Zmienia się pierwsza liczba: tu mieszkają zmiany powodujące niezgodność. |
| ⚠ podatność · wysoka | Używana wersja ma znaną lukę w zabezpieczeniach; podana jest jej waga. |
| przestarzały · użyj … | Autorzy oznaczyli pakiet jako przestarzały i wskazują ten, którego należy użyć zamiast niego. |
Karta po najechaniu
Zatrzymaj wskaźnik na wersji w kodzie lub na tekście po wierszu: karta pokazuje opis, najnowszą wersję każdej nowszej linii (10.0.13, 9.0.10, 8.0.21 dla pakietu w wersji 8.0.0) z datą, ile jest jeszcze nowszych, lukę w zabezpieczeniach z najbliższą aktualizacją bez niej oraz przyciski Aktualizuj do …, Otwórz w nuget.org i Witryna projektu. Kliknięcie dowolnej wersji na liście ustawia ją.

Aktualizacja przez Ctrl+.
Kursor w wierszu pakietu, Ctrl+.: najnowszy patch, najnowszy minor i najnowszy major są proponowane osobno, więc bezpieczna aktualizacja jest zawsze o jeden klawisz. Aktualizuj wszystkie pakiety w tym pliku w obrębie ich wersji głównej przenosi każdy pakiet na jego najnowszą wersję w ramach tej samej wersji głównej — majory pozostają osobną decyzją. Wersja z właściwości ($(ContosoVersion)) jest aktualizowana tam, gdzie plik ją definiuje. Plik jest edytowany jak przy ręcznej zmianie: Cofnij działa, a Visual Studio przywraca pakiety jak zwykle.

Ustawienia
Narzędzia → Opcje → SmithWorks → PackageSmith. Każda opcja ma opis.
| Opcja | Domyślnie |
|---|---|
| Pokazuj najnowszą wersję po każdym pakiecie | wł. |
| Oznaczaj aktualne pakiety etykietą „✓ najnowsza” | wł. |
| Proponuj wersje wstępne wszystkim pakietom | wył. |
| Oznaczaj pakiety, których nie ma w źródłach | wył. |
| Oznaczaj pakiety z lukami w zabezpieczeniach i przestarzałe | wł. |
| Karta po najechaniu | wł. |
| Aktualizacja przez Ctrl+. | wł. |
| Interwał sprawdzania | 1 godzina |
| Tryb offline | wył. |
| Proś o ocenę w Marketplace | wł. |
Ustawienia są przechowywane w %LocalAppData%\PackageSmith, a wersje z pamięci podręcznej obok nich.

FAQ
Czy PackageSmith wysyła jakieś dane?
Pyta Twoje źródła pakietów (z NuGet.config; bez niego nuget.org) o wersje pakietów z Twoich plików — to te same żądania, które wysyła Visual Studio przy ich przywracaniu. Nic więcej nie jest wysyłane: żadnej telemetrii, nazw projektów ani niczego o Tobie. Gdy włączony jest Tryb offline, nie jest wysyłane żadne żądanie.
Kanał mojej firmy wymaga logowania. Czy to działa?
Jeszcze nie: kanały wymagające poświadczeń są pomijane, a ich pakiety pozostają bez oznaczeń — nie jest pokazywana błędna odpowiedź. Publiczne kanały v3 (nuget.org, otwarte kanały firmowe) działają.
Dlaczego po niektórych pakietach nic nie ma?
Nic nie jest wypisywane, gdy wersja jest zakresem lub symbolem wieloznacznym ([1.0,2.0), 13.*), gdy właściwość jest zdefiniowana w innym pliku albo gdy żadne źródło nie odpowiedziało. Włącz Oznaczaj pakiety, których nie ma w źródłach, aby widzieć pakiety, o których każde źródło odpowiedziało, że ich nie ma.
Czy działa z centralnym zarządzaniem pakietami?
Tak: wersje są pokazywane w Directory.Packages.props po każdym PackageVersion, a także przy VersionOverride w projekcie.
Czy aktualizacja przywraca pakiety?
PackageSmith tylko edytuje plik. Visual Studio przywraca pakiety po zmianie, tak jak wtedy, gdy zmieniasz wersję ręcznie.
Czy działa razem z LensSmith?
Tak. Oba piszą na końcu wierszy, więc dzielą to miejsce: najpierw wersja, po niej ostrzeżenie NuGet z LensSmith.
Gdzie zgłosić problem lub zaproponować funkcję?
Utwórz zgłoszenie w repozytorium Feedback w serwisie GitHub — są tam formularze dla błędów i pomysłów (zmień poufne nazwy). Możesz też skorzystać z karty Q&A w Marketplace.
Historia zmian
1.0.1
- Jednorazowa prośba o ocenę w Marketplace, gdy rozszerzenie okaże się przydatne — z opcjami Później i Nie pytaj więcej oraz ustawieniem, które ją wyłącza.
1.0.0
- Pierwsze publiczne wydanie.