From 9b61e3c004fa23e84e07fa3044664f8ffee851f8 Mon Sep 17 00:00:00 2001 From: Chris Pulman Date: Wed, 5 Jul 2023 23:23:11 +0100 Subject: [PATCH 1/3] Add DotNet SDK support for versions less than 5 --- build/Extensions.cs | 10 ++++++++++ src/CP.Nuke.BuildTools/Extensions.cs | 14 ++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/build/Extensions.cs b/build/Extensions.cs index 2dded43..bf1c09c 100644 --- a/build/Extensions.cs +++ b/build/Extensions.cs @@ -171,6 +171,16 @@ public static async Task InstallDotNetSdk(this NukeBuild _, params string[] vers foreach (var version in versionsToInstall.Select(arr => $"{arr[0]}.{arr[1]}.{arr[2].ToString().First().ToString()}xx").ToArray()) { + var v = version.Split('.').Select(int.Parse).ToArray(); + if (v?[0] < 5) + { + // Handle versions less than .Net 5.0 as only accepting 2 digits + var ver = $"{v[0]}.{v[1]}"; + Console.WriteLine($"Installing .NET SDK {ver}"); + ProcessTasks.StartShell($"powershell -NoProfile -ExecutionPolicy unrestricted -Command ./dotnet-install.ps1 -Channel '{ver}';").AssertZeroExitCode(); + continue; + } + Console.WriteLine($"Installing .NET SDK {version}"); ProcessTasks.StartShell($"powershell -NoProfile -ExecutionPolicy unrestricted -Command ./dotnet-install.ps1 -Channel '{version}';").AssertZeroExitCode(); } diff --git a/src/CP.Nuke.BuildTools/Extensions.cs b/src/CP.Nuke.BuildTools/Extensions.cs index c73ee3b..770a97e 100644 --- a/src/CP.Nuke.BuildTools/Extensions.cs +++ b/src/CP.Nuke.BuildTools/Extensions.cs @@ -166,13 +166,23 @@ public static async Task InstallDotNetSdk(this NukeBuild _, params string[] vers if (!File.Exists("dotnet-install.ps1")) { - ProcessTasks.StartShell("powershell -NoProfile -ExecutionPolicy unrestricted -Command Invoke-WebRequest 'https://dot.net/v1/dotnet-install.ps1' -OutFile 'dotnet-install.ps1';").AssertZeroExitCode(); + ProcessTasks.StartShell("pwsh -NoProfile -ExecutionPolicy unrestricted -Command Invoke-WebRequest 'https://dot.net/v1/dotnet-install.ps1' -OutFile 'dotnet-install.ps1';").AssertZeroExitCode(); } foreach (var version in versionsToInstall.Select(arr => $"{arr[0]}.{arr[1]}.{arr[2].ToString().First().ToString()}xx").ToArray()) { + var v = version.Split('.').Select(int.Parse).ToArray(); + if (v?[0] < 5) + { + // Handle versions less than .Net 5.0 as only accepting 2 digits + var ver = $"{v[0]}.{v[1]}"; + Console.WriteLine($"Installing .NET SDK {ver}"); + ProcessTasks.StartShell($"pwsh -NoProfile -ExecutionPolicy unrestricted -Command ./dotnet-install.ps1 -Channel '{ver}';").AssertZeroExitCode(); + continue; + } + Console.WriteLine($"Installing .NET SDK {version}"); - ProcessTasks.StartShell($"powershell -NoProfile -ExecutionPolicy unrestricted -Command ./dotnet-install.ps1 -Channel '{version}';").AssertZeroExitCode(); + ProcessTasks.StartShell($"pwsh -NoProfile -ExecutionPolicy unrestricted -Command ./dotnet-install.ps1 -Channel '{version}';").AssertZeroExitCode(); } await Task.CompletedTask.ConfigureAwait(false); From 6006d76cc5539fda3e3b4e9c0c1b75e4c913a1b4 Mon Sep 17 00:00:00 2001 From: Chris Pulman Date: Wed, 5 Jul 2023 23:24:46 +0100 Subject: [PATCH 2/3] Update Directory.Build.props --- Directory.Build.props | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Directory.Build.props b/Directory.Build.props index 7cf56e8..ca1f3a5 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -45,8 +45,8 @@ - + - \ No newline at end of file + From b57d46ae8c5fc4fe94e900395c9e4d6d64306c98 Mon Sep 17 00:00:00 2001 From: Chris Pulman Date: Wed, 5 Jul 2023 23:36:07 +0100 Subject: [PATCH 3/3] Take first two elements only --- build/Extensions.cs | 2 +- src/CP.Nuke.BuildTools/Extensions.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build/Extensions.cs b/build/Extensions.cs index bf1c09c..0a451ec 100644 --- a/build/Extensions.cs +++ b/build/Extensions.cs @@ -171,7 +171,7 @@ public static async Task InstallDotNetSdk(this NukeBuild _, params string[] vers foreach (var version in versionsToInstall.Select(arr => $"{arr[0]}.{arr[1]}.{arr[2].ToString().First().ToString()}xx").ToArray()) { - var v = version.Split('.').Select(int.Parse).ToArray(); + var v = version.Split('.').Take(2).Select(int.Parse).ToArray(); if (v?[0] < 5) { // Handle versions less than .Net 5.0 as only accepting 2 digits diff --git a/src/CP.Nuke.BuildTools/Extensions.cs b/src/CP.Nuke.BuildTools/Extensions.cs index 770a97e..5a6140d 100644 --- a/src/CP.Nuke.BuildTools/Extensions.cs +++ b/src/CP.Nuke.BuildTools/Extensions.cs @@ -171,7 +171,7 @@ public static async Task InstallDotNetSdk(this NukeBuild _, params string[] vers foreach (var version in versionsToInstall.Select(arr => $"{arr[0]}.{arr[1]}.{arr[2].ToString().First().ToString()}xx").ToArray()) { - var v = version.Split('.').Select(int.Parse).ToArray(); + var v = version.Split('.').Take(2).Select(int.Parse).ToArray(); if (v?[0] < 5) { // Handle versions less than .Net 5.0 as only accepting 2 digits