LazowskiAnton · Extensions

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

Ten sam plik projektu bez PackageSmith i z nim: najnowsze wersje po wierszach pakietów

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

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.

Plik Directory.Packages.props z najnowszymi wersjami, pakietem z luką w zabezpieczeniach i przestarzałym
Po wierszuZnaczenie
✓ najnowszaPakiet jest w najnowszej wersji.
→ 8.0.4 patchZmienia się tylko trzecia liczba: poprawki.
→ 6.5.1 minorZmienia się druga liczba: nowe funkcje, bez zamierzonych zmian powodujących niezgodność.
→ 5.0.2 majorZmienia się pierwsza liczba: tu mieszkają zmiany powodujące niezgodność.
⚠ podatność · wysokaUż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ą.

Karta pakietu z luką w zabezpieczeniach z najnowszą wersją każdej linii

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.

Żarówka z aktualizacjami pakietu do patcha, minora i majora

Ustawienia

Narzędzia → Opcje → SmithWorks → PackageSmith. Każda opcja ma opis.

OpcjaDomyślnie
Pokazuj najnowszą wersję po każdym pakieciewł.
Oznaczaj aktualne pakiety etykietą „✓ najnowsza”wł.
Proponuj wersje wstępne wszystkim pakietomwył.
Oznaczaj pakiety, których nie ma w źródłachwył.
Oznaczaj pakiety z lukami w zabezpieczeniach i przestarzałewł.
Karta po najechaniuwł.
Aktualizacja przez Ctrl+.wł.
Interwał sprawdzania1 godzina
Tryb offlinewył.
Proś o ocenę w Marketplacewł.

Ustawienia są przechowywane w %LocalAppData%\PackageSmith, a wersje z pamięci podręcznej obok nich.

Strona opcji PackageSmith
Strona opcji.

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

1.0.0