Fix retrieving package with only prerelease versions

This commit is contained in:
Matt Parker
2025-12-05 18:37:53 +10:00
parent 575dde79ae
commit 748e6daea7
2 changed files with 11 additions and 2 deletions

View File

@@ -132,6 +132,10 @@ public class InstalledPackage
{
public required string Name { get; set; }
//public required NuGetVersion LatestVersion { get; set; }
/// <summary>
/// Projects that reference this package
/// </summary>
public required List<ProjectPackageReference> ProjectPackageReferences { get; set; }
}

View File

@@ -131,8 +131,13 @@ public class NugetClientService
if (metadataResource == null)
continue;
var foundPackages = await metadataResource.GetMetadataAsync(installedPackage.Name, _includePrerelease, true, _sourceCacheContext, _nugetLogger, cancellationToken).ConfigureAwait(false);
var latestPackage = foundPackages.LastOrDefault();
var foundPackages = (await metadataResource.GetMetadataAsync(installedPackage.Name, true, true, _sourceCacheContext, _nugetLogger, cancellationToken).ConfigureAwait(false)).ToList();
var latestPackage = foundPackages.LastOrDefault(s => _includePrerelease || !s.Identity.Version.IsPrerelease);
if (latestPackage is null)
{
// _includePrerelease may be null, and this package may have only prerelease versions
latestPackage = foundPackages.LastOrDefault();
}
if (latestPackage != null)
{
idePackageResult.PackageFromSources.Add(new IdePackageFromSourceResult(latestPackage, source));