Was wäre der beste Weg, um installierte Komponenten meiner Visual Studio 2017-Installation aufzulisten?
Ich weiß, dass ich den Visual Studio-Installer > Ändern starten und dort die Workloads oder einzelne Komponenten überprüfen kann.
Aber es scheint keine Möglichkeit zu geben, die Liste der installierten Komponenten in eine TXT-Datei zu extrahieren?
(Ich mache jetzt Screenshots, um zu dokumentieren, was ich habe)
Gibt es irgendeinen Weg? Kann ich zB vielleicht die Kommandozeile des Windows Studio Installers ausführen?
Lösung des Problems
Basierend auf der großartigen Antwort von https://stackoverflow.com/a/45330187/902415
Hier ist das nicht interaktive Snippet, das auch für VS Build Tools funktioniert
(nicht nur Community\Professional\Enterprise)
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force
Install-Module VSSetup -Scope CurrentUser -Force
(Get-VSSetupInstance | Select-VSSetupInstance -Product *).packages
Erwähnenswert ist auch der Ursprung dieses Moduls: https://github.com/Microsoft/vssetup.powershell.git
Wenn Sie hoffen, diese Informationen für eine skriptgesteuerte (Neu-)Installation von Workloads/Komponenten zu verwenden, ist Ihnen die spezifische Komponentenebene möglicherweise egal (VIELE Komponenten werden automatisch geladen) und Sie interessieren sich wahrscheinlich mehr für „Workloads".
Die vollständige Liste ist in der Microsoft-Dokumentation verfügbar, und Sie können die Version so ändern, dass sie vs. 2019 pro oder vs. 2017 Buildtools oder was auch immer widerspiegelt. https://docs.microsoft.com/en-us/visualstudio/install/workload-component-id-vs-professional?view=vs-2019
Dies ist der Befehl zum Abrufen der Liste der installierten Workloads (3 Workloads vs. 564 Komponenten....).
(Get-VSSetupInstance | Select-VSSetupInstance -Product *).packages | Where-Object { $_.Id -like '*Workload*' } | select -ExpandProperty Id
Wie im Kommentar erwähnt, können Sie einfach nur die Id
s in eine Datei leiten und diese dann in einem Installationsskript durchlaufen (ich verwende ASCII als Codierung, da dies mit Editoren besser kompatibel ist).
(Get-VSSetupInstance | Select-VSSetupInstance -Product *).packages | Where-Object { $_.Id -like '*Workload*' } | Select -ExpandProperty Id | Out-File -Encoding ascii -FilePath $HOME/vs-packages.txt
Keine Kommentare:
Kommentar veröffentlichen