@@ -34,7 +34,7 @@ if ($PSVersionTable.PSEdition -ne "Core") {
34
34
35
35
task SetupDotNet - Before Clean , Build, TestHost, TestServer, TestProtocol, TestPowerShellApi {
36
36
37
- $requiredSdkVersion = " 2.0.0"
37
+ $minRequiredSdkVersion = " 2.0.0"
38
38
39
39
$dotnetPath = " $PSScriptRoot /.dotnet"
40
40
$dotnetExePath = if ($script :IsUnix ) { " $dotnetPath /dotnet" } else { " $dotnetPath /dotnet.exe" }
@@ -54,8 +54,11 @@ task SetupDotNet -Before Clean, Build, TestHost, TestServer, TestProtocol, TestP
54
54
if ($dotnetExePath ) {
55
55
# dotnet --version can return a semver that System.Version can't handle
56
56
# 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 ) {
59
62
$script :dotnetExe = $dotnetExePath
60
63
}
61
64
else {
@@ -70,7 +73,7 @@ task SetupDotNet -Before Clean, Build, TestHost, TestServer, TestProtocol, TestP
70
73
71
74
if ($script :dotnetExe -eq $null ) {
72
75
73
- Write-Host " `n ### Installing .NET CLI $requiredSdkVersion ...`n " - ForegroundColor Green
76
+ Write-Host " `n ### Installing .NET CLI $minRequiredSdkVersion ...`n " - ForegroundColor Green
74
77
75
78
# The install script is platform-specific
76
79
$installScriptExt = if ($script :IsUnix ) { " sh" } else { " ps1" }
@@ -81,10 +84,10 @@ task SetupDotNet -Before Clean, Build, TestHost, TestServer, TestProtocol, TestP
81
84
$env: DOTNET_INSTALL_DIR = " $PSScriptRoot /.dotnet"
82
85
83
86
if (! $script :IsUnix ) {
84
- & $installScriptPath - Version $requiredSdkVersion - InstallDir " $env: DOTNET_INSTALL_DIR "
87
+ & $installScriptPath - Version $minRequiredSdkVersion - InstallDir " $env: DOTNET_INSTALL_DIR "
85
88
}
86
89
else {
87
- & / bin/ bash $installScriptPath - Version $requiredSdkVersion - InstallDir " $env: DOTNET_INSTALL_DIR "
90
+ & / bin/ bash $installScriptPath - Version $minRequiredSdkVersion - InstallDir " $env: DOTNET_INSTALL_DIR "
88
91
$env: PATH = $dotnetExeDir + [System.IO.Path ]::PathSeparator + $env: PATH
89
92
}
90
93
0 commit comments