diff --git a/src/SharpIDE.Application/Features/Evaluation/ProjectEvaluation.cs b/src/SharpIDE.Application/Features/Evaluation/ProjectEvaluation.cs index e13577c..d822fd5 100644 --- a/src/SharpIDE.Application/Features/Evaluation/ProjectEvaluation.cs +++ b/src/SharpIDE.Application/Features/Evaluation/ProjectEvaluation.cs @@ -132,6 +132,10 @@ public class InstalledPackage { public required string Name { get; set; } //public required NuGetVersion LatestVersion { get; set; } + + /// + /// Projects that reference this package + /// public required List ProjectPackageReferences { get; set; } } diff --git a/src/SharpIDE.Application/Features/Nuget/NugetClientService.cs b/src/SharpIDE.Application/Features/Nuget/NugetClientService.cs index 6e3ca3f..426b1f5 100644 --- a/src/SharpIDE.Application/Features/Nuget/NugetClientService.cs +++ b/src/SharpIDE.Application/Features/Nuget/NugetClientService.cs @@ -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));