UpgradeTools/Get-ObjectSummaryByVersionList.ps1
function Get-ObjectSummaryByVersionList { Param( [Parameter(Mandatory=$true)] [string]$SourcePath ) $VersionLists = @{} $Files = @() gci $SourcePath | % {$Files += $_.FullName} Get-NAVApplicationObjectProperty -Source $Files | % { $Versions = $_.VersionList.Split(',') foreach ($Version in $Versions) { if ($Version -ne '') { $VersionCode = Get-AlphaPartOfVersionList -VersionList $Version [Version]$VersionNo = $null if ($Version.Length -gt $VersionCode.Length) { if (![Version]::TryParse($Version.Substring($VersionCode.Length),[ref]$VersionNo)) { if (![Version]::TryParse($Version.Substring($VersionCode.Length) + '.0',[ref]$VersionNo)) { $VersionNo = [Version]::Parse('1.0') } } } else { $VersionNo = [Version]::Parse('1.0') } if (!$VersionLists.ContainsKey($VersionCode)) { $VersionLists.Add($VersionCode,$VersionNo) } else { [Version]$ExistingVersion = $VersionLists.Item($VersionCode) if ($ExistingVersion -eq $null) { $VersionLists.Item($VersionCode) = $VersionNo } elseif ($ExistingVersion.CompareTo($VersionNo) -eq -1) { $VersionLists.Item($VersionCode) = $VersionNo } } } } } $VersionLists } Export-ModuleMember -Function Get-ObjectSummaryByVersionList |