diff --git a/install.ps1 b/install.ps1 index f329d69..fc9254e 100644 --- a/install.ps1 +++ b/install.ps1 @@ -129,17 +129,29 @@ function Install-Package { Write-Success "$Name is already installed: $version" if ($MinVersion -and $version) { - # Basic version check (not perfect but good enough for common cases) - if ($version -match '(\d+\.[\d.]+)') { + # Extract semantic version numbers only - stop before any non-digit/non-dot characters + # This extracts "2.52.0" from "2.52.0.windows.1" + if ($version -match '^(\d+(?:\.\d+){1,2})') { $installedVersion = $matches[1] - if ([version]$installedVersion -lt [version]$MinVersion) { - Write-Warning "Version $installedVersion is below minimum required version $MinVersion" - Write-Host " Attempting to upgrade..." -ForegroundColor Cyan + try { + if ([version]$installedVersion -lt [version]$MinVersion) { + Write-Warning "Version $installedVersion is below minimum required version $MinVersion" + Write-Host " Attempting to upgrade..." -ForegroundColor Cyan + } + else { + return $true + } } - else { + catch { + Write-Warning "Version comparison failed - assuming sufficient version" return $true } } + else { + Write-Warning "Could not parse version from: $version" + Write-Host " Assuming installed version is sufficient..." -ForegroundColor Cyan + return $true + } } else { return $true