Fix retrieving package with only prerelease versions
This commit is contained in:
@@ -132,6 +132,10 @@ public class InstalledPackage
|
|||||||
{
|
{
|
||||||
public required string Name { get; set; }
|
public required string Name { get; set; }
|
||||||
//public required NuGetVersion LatestVersion { get; set; }
|
//public required NuGetVersion LatestVersion { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Projects that reference this package
|
||||||
|
/// </summary>
|
||||||
public required List<ProjectPackageReference> ProjectPackageReferences { get; set; }
|
public required List<ProjectPackageReference> ProjectPackageReferences { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -131,8 +131,13 @@ public class NugetClientService
|
|||||||
if (metadataResource == null)
|
if (metadataResource == null)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
var foundPackages = await metadataResource.GetMetadataAsync(installedPackage.Name, _includePrerelease, true, _sourceCacheContext, _nugetLogger, cancellationToken).ConfigureAwait(false);
|
var foundPackages = (await metadataResource.GetMetadataAsync(installedPackage.Name, true, true, _sourceCacheContext, _nugetLogger, cancellationToken).ConfigureAwait(false)).ToList();
|
||||||
var latestPackage = foundPackages.LastOrDefault();
|
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)
|
if (latestPackage != null)
|
||||||
{
|
{
|
||||||
idePackageResult.PackageFromSources.Add(new IdePackageFromSourceResult(latestPackage, source));
|
idePackageResult.PackageFromSources.Add(new IdePackageFromSourceResult(latestPackage, source));
|
||||||
|
|||||||
Reference in New Issue
Block a user