Functions/InstallDotNet.ps1
# Internal function; do not use function Install-DotNet { param ( [string] $WorkingFolder, [string] $uri, [string] $DotNetVersion ) $splitArray = $uri -split "/" $fileName = $splitArray[-1] Write-Verbose "Am attempting to install .NET $($DotNetVersion)" -Verbose $netInstaller = Join-Path -Path $WorkingFolder -ChildPath $fileName try { Invoke-WebRequest -Uri $uri -OutFile $netInstaller } catch { Throw $_.Exception } If ((Test-Path $netInstaller)) { "File $fileName downloaded!" } else { "Oh dear!" } "attempting to install .Net $($DotNetVersion) from $($fileName)..." try { $args = " /q /norestart" $installNet471BuildTools = Start-Process $netInstaller -ArgumentList $args -Wait -PassThru -WorkingDirectory $WorkingFolder -NoNewWindow } catch { $fail = $_.Exception Write-Error $fail } if ($installNet471BuildTools.ExitCode -eq 0) { Write-Host "Install Successful! Run Test-NetInstalled to verify!" -ForegroundColor DarkGreen -BackgroundColor White } else { Write-Host "Something went wrong in installing .NET $($DotNetVersion) $($fileName)" Write-Error $fail throw } } |