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));