@@ -34,7 +34,7 @@ if ($PSVersionTable.PSEdition -ne "Core") {
3434
3535task SetupDotNet - Before Clean , Build, TestHost, TestServer, TestProtocol, TestPowerShellApi {
3636
37- $requiredSdkVersion = " 2.0.0"
37+ $minRequiredSdkVersion = " 2.0.0"
3838
3939 $dotnetPath = " $PSScriptRoot /.dotnet"
4040 $dotnetExePath = if ($script :IsUnix ) { " $dotnetPath /dotnet" } else { " $dotnetPath /dotnet.exe" }
@@ -54,8 +54,11 @@ task SetupDotNet -Before Clean, Build, TestHost, TestServer, TestProtocol, TestP
5454 if ($dotnetExePath ) {
5555 # dotnet --version can return a semver that System.Version can't handle
5656 # e.g.: 2.1.300-preview-01. The replace operator is used to remove any build suffix.
57- $version = (& $dotnetExePath -- version) -replace ' [+-].*$' , ' '
58- if ([version ]$version -ge [version ]$requiredSdkVersion ) {
57+ $version = [version ]((& $dotnetExePath -- version) -replace ' [+-].*$' , ' ' )
58+ $maxRequiredSdkVersion = [version ]::Parse(" 3.0.0" )
59+
60+ # $minRequiredSdkVersion <= version < $maxRequiredSdkVersion
61+ if ($version -ge [version ]$minRequiredSdkVersion -and $version -lt $maxRequiredSdkVersion ) {
5962 $script :dotnetExe = $dotnetExePath
6063 }
6164 else {
@@ -70,7 +73,7 @@ task SetupDotNet -Before Clean, Build, TestHost, TestServer, TestProtocol, TestP
7073
7174 if ($script :dotnetExe -eq $null ) {
7275
73- Write-Host " `n ### Installing .NET CLI $requiredSdkVersion ...`n " - ForegroundColor Green
76+ Write-Host " `n ### Installing .NET CLI $minRequiredSdkVersion ...`n " - ForegroundColor Green
7477
7578 # The install script is platform-specific
7679 $installScriptExt = if ($script :IsUnix ) { " sh" } else { " ps1" }
@@ -81,10 +84,10 @@ task SetupDotNet -Before Clean, Build, TestHost, TestServer, TestProtocol, TestP
8184 $env: DOTNET_INSTALL_DIR = " $PSScriptRoot /.dotnet"
8285
8386 if (! $script :IsUnix ) {
84- & $installScriptPath - Version $requiredSdkVersion - InstallDir " $env: DOTNET_INSTALL_DIR "
87+ & $installScriptPath - Version $minRequiredSdkVersion - InstallDir " $env: DOTNET_INSTALL_DIR "
8588 }
8689 else {
87- & / bin/ bash $installScriptPath - Version $requiredSdkVersion - InstallDir " $env: DOTNET_INSTALL_DIR "
90+ & / bin/ bash $installScriptPath - Version $minRequiredSdkVersion - InstallDir " $env: DOTNET_INSTALL_DIR "
8891 $env: PATH = $dotnetExeDir + [System.IO.Path ]::PathSeparator + $env: PATH
8992 }
9093
0 commit comments