© deomis/Shutterstock.com
Kolumne: .NETversum

Tipps und Tricks rund um .NET und Visual Studio


Zu viele SDKs auf der Festplatte

Wer – wie der Autor dieses Beitrags – immer am Puls der Zeit entwickelt bzw. Kunden berät, auf dessen Festplatte sammeln sich zahlreiche SDK-Installationen an.

Abbildung 1 zeigt den Dateisystemordner C:\Program Files\dotnet\sdk auf einem der Entwickungsrechner des Autors mit zahlreichen SDK-Versionen insbesondere von .NET-Core-Versionen 2.1 und 2.2. Auf der Festplatte brauchen die SDK-Installationen zwischen 338 und 497 MB (siehe Apps & features in den modernen Windows Settings von Windows 10 (Abb. 2)).

Eine Liste der installierten SDKs erhält ein Softwareentwickler auch über den Kommandozeilenbefehl dotnet.exe --list-sdks (Abb. 3).

schwichtenberg_kolumne_wd_9_19_1.tif_fmt1.jpgAbb. 1: Dateisystemordner „C:\Program Files\dotnet\sdk“ des Autors mit zahlreichen SDK-Versionen von 1.x bis 3.x
schwichtenberg_kolumne_wd_9_19_2.tif_fmt1.jpgAbb. 2: Speicherbedarf der .NET-Core-SDK-Installationen (Ausschnitt)
schwichtenberg_kolumne_wd_9_19_3.tif_fmt1.jpgAbb. 3: Liste der SDKs auf der Kommandozeile mit „dotnet --list-sdks“

Manuelle Deinstallation

Natürlich lassen sich die SDK-Versionen händisch deinstallieren. Hierzu sind aber einige Mausklicks in den Apps & features in den Settings notwendig.

Deinstallation per PowerShell und WMI

Eleganter geht es natürlich immer über die Kommandozeile. Hier soll die PowerShell zum Einsatz kommen, um all die zahlreichen SDK-Versionen per Skript zu deinstallieren. Kern der Lösung ist das PowerShell Commandlet Get-CimInstance, dass alle Instanzen einer Windows Management Instrumentation (WMI)-Klasse auflistet. Die WMI-Klasse, in der auch die .NET-Core-SDK-Installationen erfasst sind, heißt Win32_Product.

Die folgende PowerShell Pipeline liefert alle Win32_Product-Objekte, deren Name die Zeichenfolgen .NET Core SDK 2.1 und Preview enthält:

get-ciminstance "Win32_Product" -filter "Name LIKE '%.NET Core SDK 2.1%' and Name LIKE '%Preview%'" | ft name, version

Zu beachten ist, dass Win32_Product leider eine sehr langsame WMI-Klasse ist. Nach einiger Wartezeit ist die Konsolenausgabe im obigen Fall (Abb. 1 bis 3) dann:

name version ---- ------- Microsoft .NET Core SDK 2.1.500 - preview (x64) 8.125.9297 Microsoft .NET Core SDK 2.1.500 - preview (x64) 8.125.9335 Microsoft .NET Core SDK 2.1.800 - preview (x64) 8.216.9677 Microsoft .NET Core SDK 2.1.700 - preview (x64) 8.191.9601 Microsoft .NET Core SDK 2.1.600 - preview (x64) 8.150.9426 Microsoft .NET Core SDK 2.1.700 - preview (x64) 8.191.9618 Microsoft .NET Core SDK 2.1.600 - preview (x64) 8.150.9497 Microsoft .NET Core SDK 2.1.300 - Preview (x64) 8.91.8174

Das Skript in Listing 1 löscht al...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang