4 minutes
Kasowanie starych paczek .NET Core SDK
Podczas aktualizacji Visual Studio, jego instalator instaluje również nowe wersje .NET Core SDK - każda zajmuje ok. 500 MB.
Po pewnym czasie może się nazbierać trochę niepotrzebnych paczek. W moim przypadku było to ponad 10, czyli na szybko licząc ok. 5 GB zbędnych rzeczy.
Pierwszy raz o tym problemie dowiedziałem się ze wpisu .NET Core – oczyszczanie komputera na blogu u Weroniki Mularczyk.
Wtedy tych niepotrzebnych paczek miałem kilka i wszystkie usunąłem ręcznie. Ostatnio tych paczek uzbierało mi się trochę więcej, więc postanowiłem poszukać rozwiązania jak to szybko usunąć.
Znalazłem specjalne narzędzie stworzone do tego. W tym wpisie pokażę to narzędzie.
dotnet-core-uninstall
To narzędzie to dotnet-core-uninstall
. Dostępne jest tutaj https://github.com/dotnet/cli-lab/releases. W tym momencie działa tylko na Windowsie i MacOX.
Instalacja
Ja pracuję na Windowsie. W tym przypadku trzeba ściągnąć instalator, plik z rozszerzeniem msi
. Następnie go uruchomiamy i instalujemy narzędzie.
Już możemy z niego korzystać wpisując w linii poleceń dotnet-core-uninstall
.
Usuwanie starych wersji .NET Core SDK
Aby zobaczyć listę zainstalowanych SDK wpisujemy polecenie:
dotnet-core-uninstall list
Widać co mamy zainstalowane:
.NET Core SDKs:
3.1.100 x64 [Used by Visual Studio. Specify individually or use --force to remove]
2.2.101 x64 [Used by Visual Studio 2017. Specify individually or use --force to remove]
2.1.519 x64 [Used by Visual Studio 2017. Specify individually or use --force to remove]
2.1.518 x64
Akurat na tym komputerze mam zainstalowane tylko SDK, żadnego Runtime czy Hosting Bundle. Tych wersji tutaj było więcej, chyba ponad 15 więcej, ale przed napisaniem tego posta uruchamiałem to narzędzie i skasowałem większość niepotrzebnych rzeczy. Zostało do usunięcia jeszcze wersja 2.1.518
.
Po uruchomieniu narzędzia polecenim dotnet-core-uninstall
jest napisane, że aby usunąć konkretną wersję trzeba użyć polecenia remove
z podaniem konkretnego numeru wersji.
remove <VERSION> Remove the specified .NET Core SDKs or Runtimes.
W obecnej sytuacji mam tylko jedną wersję do usunięcia, więc jedno polecenie i po sprawie. Wcześniej miałem tych wersji więcej do usuwania, więc słabo widziało mi się wpisywanie tego wszystkiego ręcznie.
Na szczęście można usuwać rzeczy hurtem 😃. Wpisujemy polecenie:
dotnet-core-uninstall remove -h
Dostajemy listę opcji jakie możemy użyć przy usuwaniu:
Options:
--all Remove all .NET Core SDKs or Runtimes. (*)
--all-below <VERSION> Remove .NET Core SDKs or Runtimes below the specified version. The specified version will remain. (*)
--all-but <VERSIONS> Remove .NET Core SDKs or Runtimes, except those specified. (*)
--all-but-latest Remove .NET Core SDKs or Runtimes, except the one highest version. (*)
--all-lower-patches Remove .NET Core SDKs or Runtimes superseded by higher patches. Protects global.json. (*)
--all-previews Remove .NET Core SDKs or Runtimes marked as previews. (*)
--all-previews-but-latest Remove .NET Core SDKs or Runtimes marked as previews, except the one highest preview. (*)
--aspnet-runtime Remove ASP.NET Core Runtimes only.
--force Force removal of versions that might be used by Visual Studio.
--hosting-bundle Remove .NET Core Runtime & Hosting Bundles only.
--major-minor <MAJOR_MINOR> Remove .NET Core SDKs or Runtimes that match the specified `major.minor` version.
--runtime Remove .NET Core Runtimes only.
--sdk Remove .NET Core SDKs only.
-v, --verbosity <LEVEL> Set the verbosity level. Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic].
--x64 Can be used with --sdk, --runtime and --aspnet-runtime to remove x64.
--x86 Can be used with --sdk, --runtime and --aspnet-runtime to remove x86.
-y, --yes Execute the command without requiring y/n confirmation.
Trochę tego jest 😃. Mnie zainteresowała ta opcja:
--all-below <VERSION>
Bo chcę usunąć wszystkie wersje niższe niż 2.1.519
Suchy bieg, czyli dry-run
Przed usunięciem można użyć opcji dry-run
i sprawdzić jakie paczki zostaną usunięte.
Dobrze jest uruchomić z tą opcją, aby przypadkiem nie usunąć paczki, która jest używana.
dotnet-core-uninstall dry-run --sdk --all-below 2.1.519
Jeszcze zaznaczamy, że usuwany SDK: --sdk
.
Widzimy co zostanie usunięte:
*** DRY RUN OUTPUT
Specified versions:
Microsoft .NET Core SDK 2.1.518 (x64)
*** END DRY RUN OUTPUT
To avoid breaking Visual Studio or other problems, read https://aka.ms/dotnet-core-uninstall.
Run as administrator and use the remove command to uninstall these items.
Faktyczne usuwanie
Jeśli wszystko się zgadza to uruchamiam polecenie:
dotnet-core-uninstall remove --sdk --all-below 2.1.519
Potwierdzamy, że chcemy kontynuować i po chwili wszystko jest usunięte.
The following items will be removed:
Microsoft .NET Core SDK 2.1.518 (x64)
To avoid breaking Visual Studio or other problems, read https://aka.ms/dotnet-core-uninstall.
Do you want to continue? [y/n] y
Uninstalling: Microsoft .NET Core SDK 2.1.518 (x64).
Podsumowanie
W ten prosty sposób można skasować nie używane SDK i inne rzeczy oraz odzyskać sporo miejsca na dysku.
W obecnych czasach, gdzie mamy dyski o dużej pojemności te kilka GB nie robi różnicy. Ale jak ktoś ma laptopa i dysk SSD 128 GB (ja tak miałem 😃), to te kilka giga się przyda.
Źródła: