@@ -403,10 +403,10 @@ function Get-PodeBuildTargetFramework {
403403 )
404404
405405 switch ($TargetFrameworks ) {
406- ' netstandard2.0' { return 2 }
406+ ' netstandard2.0' { return 2 }
407407 ' net8.0' { return 8 }
408- ' net9.0' { return 9 }
409- ' net10.0' { return 10 }
408+ ' net9.0' { return 9 }
409+ ' net10.0' { return 10 }
410410 default {
411411 Write-Warning " $TargetFrameworks is not a valid Framework. Rollback to netstandard2.0"
412412 return 2
@@ -454,26 +454,21 @@ function Get-PodeBuildTargetFrameworkName {
454454 }
455455}
456456
457+ function Get-PodeBuildAvailableDotnetSdkVersion {
458+ $dnVersion = ([version ](dotnet -- version)).Major
459+ Write-Host " Dotnet Version: $ ( $dnVersion ) "
460+ return $dnVersion
461+ }
462+
457463function Invoke-PodeBuildDotnetBuild {
458464 param (
459465 [string ]$target
460466 )
461467
462468 # Retrieve the installed SDK versions
463- $sdkVersions = dotnet -- list- sdks | ForEach-Object { $_.Split (' [' )[0 ].Trim() }
464- if ([string ]::IsNullOrEmpty($AvailableSdkVersion )) {
465- $majorVersions = $sdkVersions | ForEach-Object { ([version ]$_ ).Major } | Sort-Object - Descending | Select-Object - Unique
466- }
467- else {
468- $majorVersions = $sdkVersions.Where ( { ([version ]$_ ).Major -ge (Get-PodeBuildTargetFramework - TargetFrameworks $AvailableSdkVersion ) } ) | Sort-Object - Descending | Select-Object - Unique
469- }
470- # Map target frameworks to minimum SDK versions
471-
472- if ($null -eq $majorVersions ) {
473- Write-Error " The requested '$AvailableSdkVersion ' framework is not available."
474- return
475- }
469+ $dotnetVersion = Get-PodeBuildAvailableDotnetSdkVersion
476470 $requiredSdkVersion = Get-PodeBuildTargetFramework - TargetFrameworks $target
471+ Write-Host " Target Framework: $ ( $target ) requires SDK version: $ ( $requiredSdkVersion ) "
477472
478473 # Determine if the target framework is compatible
479474 $isCompatible = $majorVersions -ge $requiredSdkVersion
@@ -979,34 +974,31 @@ Add-BuildTask BuildDeps {
979974 }
980975
981976 try {
982- $sdkVersions = dotnet -- list- sdks | ForEach-Object { $_.Split (' [' )[0 ].Trim() }
977+ $dotnetVersion = Get-PodeBuildAvailableDotnetSdkVersion
978+ if ($dotnetVersion -lt (Get-PodeBuildTargetFramework - TargetFrameworks $SdkVersion )) {
979+ throw " The current .NET SDK version '$dotnetVersion ' is less than the required '$SdkVersion '"
980+ }
983981 }
984982 catch {
985983 Invoke-PodeBuildInstall $dotnet $SdkVersion
986- $sdkVersions = dotnet -- list - sdks | ForEach-Object { $_ .Split ( ' [ ' )[ 0 ].Trim() }
984+ $dotnetVersion = Get-PodeBuildAvailableDotnetSdkVersion
987985 }
988- $majorVersions = ($sdkVersions | ForEach-Object { ([version ]$_ ).Major } | Sort-Object - Descending | Select-Object - Unique)[0 ]
989- $script :AvailableSdkVersion = Get-PodeBuildTargetFrameworkName - Version $majorVersions
990986
991- if ($majorVersions -lt (Get-PodeBuildTargetFramework - TargetFrameworks $SdkVersion )) {
992- Invoke-PodeBuildInstall $dotnet $SdkVersion
993- $sdkVersions = dotnet -- list- sdks | ForEach-Object { $_.Split (' [' )[0 ].Trim() }
994- $majorVersions = ($sdkVersions | ForEach-Object { ([version ]$_ ).Major } | Sort-Object - Descending | Select-Object - Unique)[0 ]
995- $script :AvailableSdkVersion = Get-PodeBuildTargetFrameworkName - Version $majorVersions
987+ $script :AvailableSdkVersion = Get-PodeBuildTargetFrameworkName - Version $dotnetVersion
996988
997- if ($majorVersions -lt (Get-PodeBuildTargetFramework - TargetFrameworks $SdkVersion )) {
998- Write-Error " The requested framework '$SdkVersion ' is not available."
999- return
1000- }
989+ if ($dotnetVersion -lt (Get-PodeBuildTargetFramework - TargetFrameworks $SdkVersion )) {
990+ Write-Error " The requested framework '$SdkVersion ' is not available."
991+ return
1001992 }
1002- elseif ($majorVersions -gt (Get-PodeBuildTargetFramework - TargetFrameworks $SdkVersion )) {
993+
994+ if ($dotnetVersion -gt (Get-PodeBuildTargetFramework - TargetFrameworks $SdkVersion )) {
1003995 Write-Warning " The requested SDK version '$SdkVersion ' is superseded by the installed '$ ( $script :AvailableSdkVersion ) ' framework."
1004996 }
1005997
998+ # install yarn
1006999 if (! (Test-PodeBuildCommand ' yarn' )) {
10071000 Invoke-PodeBuildInstall ' yarn' $Versions.Yarn
10081001 }
1009-
10101002}
10111003
10121004# Synopsis: Install dependencies for running tests
0 commit comments