param( $Action, [hashtable] $Arguments ) & { param($parameters) . "$PSScriptRoot/../../../Common/Scripts/BrowserAutomation.ps1"; . "$PSScriptRoot/../../../Common/Scripts/Software.ps1"; . "$PSScriptRoot/../../../Common/Scripts/System.ps1"; [System.Tuple[string, string, string][]] $versions = @( [System.Tuple]::Create("visualstudio2019enterprise", "VisualStudio.16.Release", "Microsoft.VisualStudio.Product.Enterprise"), [System.Tuple]::Create("visualstudio2019community", "VisualStudio.16.Release", "Microsoft.VisualStudio.Product.Community"), [System.Tuple]::Create("visualstudio2022enterprise", "VisualStudio.17.Release", "Microsoft.VisualStudio.Product.Enterprise"), [System.Tuple]::Create("visualstudio2022community", "VisualStudio.17.Release", "Microsoft.VisualStudio.Product.Community") ); Start-SoftwareInstaller @parameters ` -Installer { foreach ($version in $versions) { $packageName = $version[0]; Write-Host "Installing ``$packageName``…"; Install-ChocoPackage $packageName; Remove-DesktopIcon "CocosCreator*"; Remove-DesktopIcon "Unity Hub*"; } }; # ToDo: Add restoration # Only restore version if it has been backed up } $PSBoundParameters;