Możesz wycofać pakiet, jeśli nie będziesz już obsługiwać pakietu lub chcesz zachęcić użytkowników pakietu do przejścia do innego pakietu.
Wycofanie pakietu różni się od wyrejestrowania pakietu, jak wyjaśniono poniżej:
Usunięcie listy pakietu uniemożliwia odnajdywanie , ponieważ jest ukryte w wynikach wyszukiwania.
Wycofanie pakietu umożliwia istniejącym użytkownikom pakietu dowiedzieć się, czy ma on zainstalowany lub używany w swoich projektach. Informuje również o przyczynie wycofania i alternatywnego zalecanego pakietu określonego przez Ciebie (wydawcę pakietów). Wycofanie pakietu nie powoduje cofnięcia listy pakietu.
Jako wydawca możesz zrezygnować z listy, a także wycofać pakiety.
Przepływ pracy wycofywania
Aby wycofać pakiet, przejdź do pozycji Zarządzaj pakietami i wybierz pozycję Wycofaj:
Wybierz wersję, którą chcesz wycofać. Jeśli chcesz wycofać całą wersję, wybierz opcję Wybierz wszystkie wersje .
Wybierz przyczynę wycofania. Jeśli pakiet nie jest już obsługiwany, wybierz opcję Starsza wersja. Jeśli określona wersja ma krytyczną usterkę, wybierz opcję ma krytyczne usterki . Z jakiegokolwiek innego powodu wybierz pozycję Inne. Zawsze można określić alternatywny zalecany pakiet (i wersję) oraz niestandardowy komunikat dla właścicieli.
Uwaga
Komunikat niestandardowy jest wyświetlany tylko w nuget.org, ale nie od klientów. Obecnie klienci, tacy jak dotnet.exe i NuGet Menedżer pakietów, nie wyświetlają komunikatu niestandardowego.
Środowisko klienta dla przestarzałych pakietów
Gdy pakiet został przestarzały, jego odbiorcy są powiadamiani o nim w następujący sposób (w zależności od używanego klienta).
Visual Studio
Dostępne od Visual Studio 2019 w wersji 16.3
Visual Studio ostrzega o użyciu przestarzałego pakietu na Installed karcie. Zostanie wyświetlone ostrzeżenie dotyczące pakietu i jego informacji o wycofaniu (w tym przyczynę, dla którego został przestarzały, oraz alternatywny pakiet do użycia, jeśli istnieje).
dotnet.exe
Dostępne począwszy od zestawu .NET SDK 3.0
Jeśli używasz dotnet.exe, możesz uruchomić polecenie dotnet list package --deprecated w folderze rozwiązania lub projektu, aby uzyskać listę przestarzałych pakietów wraz z informacjami o wycofaniu:
> dotnet list package --deprecated
The following sources were used:
https://api.nuget.org/v3/index.json
Project `My.Test.Project` has the following deprecated packages
[netcoreapp3.0]:
Top-level Package Resolved Reason(s) Alternative
> My.Sample.Lib 6.0.0 Legacy My.Awesome.Package
Przenoszenie popularności do nowszego pakietu
Autorzy pakietów, którzy przestali korzystać ze starszego pakietu, mogą zdecydować się przenieść swoją "popularność" do nowszego pakietu, aby zwiększyć ranking wyszukiwania nowszego pakietu. Ułatwia to klientom odnajdywanie nowszego pakietu zamiast przestarzałego pakietu.
Załóżmy na przykład, że mam dwa pakiety:
Mój przestarzały starszy pakiet z Contoso.Legacy 3 milionami plików do pobrania
Mój najnowszy pakiet z Contoso.Latest 5 plikami do pobrania
NuGet.org preferuje wyniki wyszukiwania z większą popularnością/pobieraniem. Biorąc pod uwagę zapytanie wyszukiwania "Contoso", mój przestarzały pakiet Contoso.Legacy prawdopodobnie plasuje się powyżej mojego najnowszego pakietu Contoso.Latest w wynikach wyszukiwania.
Aby rozwiązać ten problem, mogę zastosować się do przeniesienia popularności mojego przestarzałego starszego pakietu do mojego najnowszego pakietu. Może to spowodować Contoso.Latest , że pozycja będzie wyższa w wynikach wyszukiwania, podczas gdy Contoso.Legacy pozycja będzie niższa. Dotyczy to tylko wewnętrznych wyników popularności pakietów. Rzeczywista liczba pobierania dla każdego pakietu nie będzie miała wpływu.
Uwaga
Transfery popularności mogą znacznie utrudnić konsumentom znalezienie starszego pakietu.
Zapoznaj się z poniższą tabelą, aby dowiedzieć się, jak transfer popularności może mieć wpływ na rankingi wyszukiwania dla zapytania "Contoso":
Wiadomość e-mail account@nuget.org z przestarzałym pakietem, którego popularność powinna zostać przeniesiona, oraz lista stabilnych pakietów, które powinny otrzymać transfer popularności.
Po przesłaniu wniosku powiadomimy Cię o zaakceptowaniu lub odrzuceniu aplikacji (z kryteriami, które spowodowały odrzucenie). Może być konieczne zadawanie dodatkowych pytań identyfikujących, aby potwierdzić tożsamość właściciela.
Wymagania dotyczące transferu popularności
Starsze pakiety i nowe pakiety muszą współużytkować wszystkich właścicieli.
Nowe pakiety muszą być wyraźnie powiązane ze starszymi pakietami w nazewnictwie i funkcji (tj. ewolucji lub nowej generacji).
Wszystkie wersje starszych pakietów muszą być przestarzałe i wskazywać nowe pakiety odbierające transfer.
Transfer popularności nie może spowodować nieporozumień dla użytkowników NuGet lub pogorszyć środowisko wyszukiwania NuGet.
Nowe pakiety muszą mieć stabilną wersję.
Starszy pakiet nie może otrzymywać transferów popularności z innego przestarzałego pakietu.
Zaawansowane scenariusze transferu popularności
Konsolidacje pakietów
Mogę przenieść popularność wielu przestarzałych pakietów na rzecz jednego nowego pakietu. Załóżmy na przykład, że mam 3 pakiety:
Mój pierwszy przestarzały starszy pakiet, Contoso.Legacy1
Mój drugi przestarzały starszy pakiet, Contoso.Legacy2
Mój nowy skonsolidowany pakiet, Contoso.Latest
Po wycofaniu Contoso.Legacy1 i Contoso.Legacy2, mogę zastosować się do przeniesienia ich popularności do Contoso.Latest.
Podziały pakietów
Popularność przestarzałego pakietu można przenieść do i podzielić między maksymalnie 5 nowszych pakietów. Jest to przydatne, jeśli funkcjonalność przestarzałego pakietu została podzielona między wiele nowych pakietów. Załóżmy na przykład, że mam 3 pakiety:
Mój przestarzały starszy pakiet, Contoso.Legacy
Mój pierwszy nowy pakiet, Contoso.Web
Mój drugi nowy pakiet, Contoso.Cloud
Contoso.Legacy obejmuje zarówno funkcje internetowe, jak i w chmurze, ale postanowiłem oddzielić te funkcje od różnych pakietów dla następnej generacji. Po przestarzałym Contoso.Legacy, mogę zastosować się do przeniesienia jego popularności zarówno do Contoso.Web i Contoso.Cloud.
Ostrzeżenie
Przeniesiona popularność zostanie podzielona równomiernie między wszystkie nowe pakiety. W związku z tym zalecamy przeniesienie popularności przestarzałego pakietu do jak najmniejszej liczby pakietów.
Łańcuchy transferu popularności
Przestarzały pakiet nie może przenieść jego popularności, jeśli już otrzymuje popularność z innego przestarzałego pakietu. Załóżmy na przykład, że mam 3 pakiety:
Mój przestarzały starszy pakiet, Contoso.First
Mój przestarzały starszy pakiet, Contoso.Second
Mój nowy pakiet, Contoso.Latest
Jeśli Contoso.First jego popularność zostanie przeniesiona, Contoso.Second, nie Contoso.Second może przenieść jego popularności do Contoso.Latest. Zamiast tego zalecamy przeniesienie popularności zarówno, Contoso.First jak i Contoso.Second do Contoso.Latest, zgodnie ze scenariuszem konsolidacji pakietów .
Utwórz projekt platformy .NET i dowiedz się, jak dodawać pakiety i zarządzać zależnościami pakietów w projekcie. Użyj interfejsu wiersza polecenia platformy .NET Core i rejestru NuGet, aby dodać biblioteki i narzędzia do aplikacji w języku C# przy użyciu programu Visual Studio Code.