Skip to content

Commit 92bfb97

Browse files
committed
Merge branch 'winget-1.11.200-fix'
2 parents 5881995 + facfde9 commit 92bfb97

2 files changed

Lines changed: 25 additions & 10 deletions

File tree

src/UniGetUI.PackageEngine.Managers.WinGet/ClientHelpers/NativePackageHandler.cs

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System.Collections.Concurrent;
2+
using System.Linq.Expressions;
23
using Microsoft.Management.Deployment;
34
using UniGetUI.Core.Logging;
45
using UniGetUI.PackageEngine.Enums;
@@ -50,17 +51,29 @@ public static void AddPackage(IPackage package, CatalogPackage catalogPackage)
5051
//
5152
//private static CatalogPackageMetadata? _getDetails(IPackage package)
5253
{
53-
if (__nativeDetails.TryGetValue(package.GetHash(), out CatalogPackageMetadata? metadata))
54-
return metadata;
54+
try
55+
{
56+
if (__nativeDetails.TryGetValue(package.GetHash(), out CatalogPackageMetadata? metadata))
57+
return metadata;
5558

56-
CatalogPackage? catalogPackage = GetPackage(package);
57-
metadata = catalogPackage?.DefaultInstallVersion?.GetCatalogPackageMetadata();
58-
metadata ??= catalogPackage?.InstalledVersion?.GetCatalogPackageMetadata();
59+
CatalogPackage? catalogPackage = GetPackage(package);
60+
if (catalogPackage is null) return null;
5961

60-
if (metadata is not null)
61-
__nativeDetails[package.GetHash()] = metadata;
62+
var availableVersions = catalogPackage.AvailableVersions?.ToArray() ?? [];
63+
if (availableVersions.Length > 0)
64+
{
65+
metadata = catalogPackage.GetPackageVersionInfo(availableVersions[0]).GetCatalogPackageMetadata();
66+
}
6267

63-
return metadata;
68+
if (metadata is not null)
69+
__nativeDetails[package.GetHash()] = metadata;
70+
71+
return metadata;
72+
}
73+
catch (Exception ex)
74+
{
75+
throw;
76+
}
6477
}
6578

6679
/// <summary>

src/UniGetUI.PackageEngine.Managers.WinGet/ClientHelpers/NativeWinGetHelper.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,9 +194,11 @@ public IReadOnlyList<Package> GetInstalledPackages_UnSafe()
194194
foreach (var nativePackage in TaskRecycler<IReadOnlyList<CatalogPackage>>.RunOrAttach(GetLocalWinGetPackages, 15))
195195
{
196196
IManagerSource source;
197-
if (nativePackage.DefaultInstallVersion is not null && nativePackage.DefaultInstallVersion.PackageCatalog is not null)
197+
var availableVersions = nativePackage.AvailableVersions?.ToArray() ?? [];
198+
if (availableVersions.Length > 0)
198199
{
199-
source = Manager.SourcesHelper.Factory.GetSourceOrDefault(nativePackage.DefaultInstallVersion.PackageCatalog.Info.Name);
200+
var installPackage = nativePackage.GetPackageVersionInfo(availableVersions[0]);
201+
source = Manager.SourcesHelper.Factory.GetSourceOrDefault(installPackage.PackageCatalog.Info.Name);
200202
}
201203
else
202204
{

0 commit comments

Comments
 (0)