PortValhalla/scripts/Windows/Software/VisualStudio/Manage.ps1

30 lines
1.2 KiB
PowerShell

Import-Module "KnownFolders";
. "$PSScriptRoot/../../Scripts/Context.ps1";
$null = New-Module {
$programs32Path = $(Get-KnownFolder "ProgramFilesX86").Path;
$vsInstaller = "$programs32Path/Microsoft Visual Studio/Installer/vs_installer.exe";
[System.Tuple[string, string, string][]]$versions = @(
[System.Tuple]::Create("visualstudio2019enterprise", "VisualStudio.16.Release", "Microsoft.VisualStudio.Product.Enterprise"));
function Get-ConfigPath([Context] $context, [string] $packageName) {
return Join-Path $($context.BackupRoot()) $packageName ".vsconfig";
}
function Backup-VisualStudio([Context] $context) {
foreach ($version in $versions) {
$configPath = Get-ConfigPath $context $version[0];
$null = New-Item -Force -ItemType Directory "$(Split-Path -Parent $configPath)";
Start-Process -FilePath "$vsInstaller" `
-Wait `
-ArgumentList @(
"export",
"--channelId", "$($version[1])",
"--productId", "$($version[2])",
"--config", "$configPath",
"--quiet");
}
}
}