public/Select-SqlPackageVersion.ps1
function Select-SqlPackageVersion { <# .SYNOPSIS Selects a version of SqlPackage.exe to use #> [OutputType([string])] [CmdletBinding()] param( [Parameter(Mandatory = $true)] [string] $PreferredVersion ) try { $specificVersion = $PreferredVersion -and $PreferredVersion -ne 'latest' $versions = '150', '140', '130', '120' | Where-Object { $_ -ne $PreferredVersion } # Look for a specific version of Microsoft SQL Server SqlPackage.exe if ($specificVersion) { if ((Get-SqlPackagePath -Version $PreferredVersion)) { return $PreferredVersion } Write-Information "Version '$PreferredVersion' not found. Looking for alternative version." } # Look for latest or a previous version. foreach ($version in $versions) { if ((Get-SqlPackagePath -Version $version)) { # Warn falling back. if ($specificVersion) { $msg = "SQLPackage.exe version '{0}' not found. Using version '{1}'." -f $PreferredVersion, $version; Write-Information $msg } return $version; } } # Warn not found. if ($specificVersion) { $msg = "SQLPackage.exe version '{0}' not found." -f $PreferredVersion; Write-Information $msg; } else { Write-Warning ("SQLPackage was not found on the build agent server. Try installing Microsoft SQL Server Data-Tier Application Framework"); Write-Warning ("For install instructions, see https://www.microsoft.com/en-us/download/details.aspx?id=57784/"); } } catch { Write-Error "Select-SqlPackageVersion failed with error $Error"; } } |