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 + diff --git a/build/Extensions.cs b/build/Extensions.cs index 2dded43..0a451ec 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('.').Take(2).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..5a6140d 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('.').Take(2).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);