From a1f3b6daec1a87ace6eb04eca540d0749b274f40 Mon Sep 17 00:00:00 2001 From: "Mr.k" Date: Mon, 7 Oct 2024 16:43:12 +0300 Subject: [PATCH] Fix Sorting of Errored Packages by using 'Sort-Object' instead of 'IComparer' approach (#2) Fixes startup issues in PWSH 7 --- .../private/Invoke-WinUtilMicroWin-Helper.ps1 | 27 +------------------ 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/functions/private/Invoke-WinUtilMicroWin-Helper.ps1 b/functions/private/Invoke-WinUtilMicroWin-Helper.ps1 index aa6da159..6c2006c0 100644 --- a/functions/private/Invoke-WinUtilMicroWin-Helper.ps1 +++ b/functions/private/Invoke-WinUtilMicroWin-Helper.ps1 @@ -36,30 +36,6 @@ class ErroredPackage { } } -class ErroredPackageComparer : System.Collections.Generic.IComparer[ErroredPackage] { - [string]$PropertyName - [bool]$Descending = $false - - ErroredPackageComparer([string]$property) { - $this.PropertyName = $property - } - - ErroredPackageComparer([string]$property, [bool]$descending) { - $this.PropertyName = $property - $this.Descending = $descending - } - - [int]Compare([ErroredPackage]$a, [ErroredPackage]$b) { - if ($a.$($this.PropertyName) -eq $b.$($this.PropertyName)) { $res = 0 } - elseif ($a.$($this.PropertyName) -lt $b.$($this.PropertyName)) { $res = -1 } - else { $res = 1 } - - if ($this.Descending) { $res *= -1 } - - return $res - } -} - function Get-FidoLangFromCulture { param ( @@ -223,8 +199,7 @@ function Remove-Packages { Write-Host "$failedCount package(s) could not be removed. Your image will still work fine, however. Below is information on what packages failed to be removed and why." if ($erroredPackages.Count -gt 0) { - $ErrorMessageComparer = [ErroredPackageComparer]::new("ErrorMessage") - $erroredPackages.Sort($ErrorMessageComparer) + $erroredPackages = $erroredPackages | Sort-Object -Property ErrorMessage $previousErroredPackage = $erroredPackages[0] $counter = 0