fix nuget
All checks were successful
Build / Compute Version (push) Successful in 5s
Build / Build Nuget package (CringeBootstrap.Abstractions) (push) Successful in 2m38s
Build / Build Nuget package (NuGet) (push) Successful in 2m24s
Build / Build Nuget package (CringePlugins) (push) Successful in 2m48s
Build / Build Nuget package (SharedCringe) (push) Successful in 2m29s
Build / Build Launcher (push) Successful in 3m50s
All checks were successful
Build / Compute Version (push) Successful in 5s
Build / Build Nuget package (CringeBootstrap.Abstractions) (push) Successful in 2m38s
Build / Build Nuget package (NuGet) (push) Successful in 2m24s
Build / Build Nuget package (CringePlugins) (push) Successful in 2m48s
Build / Build Nuget package (SharedCringe) (push) Successful in 2m29s
Build / Build Launcher (push) Successful in 3m50s
This commit is contained in:
@@ -12,7 +12,7 @@ public class PackageResolver(NuGetFramework runtimeFramework, ImmutableArray<Pac
|
||||
public async Task<ImmutableHashSet<ResolvedPackage>> ResolveAsync()
|
||||
{
|
||||
var order = 0;
|
||||
var packages = new SortedSet<Package>();
|
||||
var packages = new SortedDictionary<Package, CatalogEntry>();
|
||||
|
||||
foreach (var reference in references)
|
||||
{
|
||||
@@ -20,25 +20,25 @@ public class PackageResolver(NuGetFramework runtimeFramework, ImmutableArray<Pac
|
||||
|
||||
var registrationRoot = await client.GetPackageRegistrationRootAsync(reference.Id);
|
||||
|
||||
NuGetVersion? version = null;
|
||||
foreach (var page in registrationRoot.Items)
|
||||
{
|
||||
version = reference.Range.FindBestMatch(page.Items.Where(b => b.CatalogEntry.PackageTypes is [{ Name: "CringePlugin" }]).Select(b => b.CatalogEntry.Version));
|
||||
if (version is not null)
|
||||
break;
|
||||
}
|
||||
var items = registrationRoot.Items.SelectMany(page =>
|
||||
page.Items.Where(b => b.CatalogEntry.PackageTypes is ["CringePlugin"]))
|
||||
.ToImmutableDictionary(b => b.CatalogEntry.Version);
|
||||
|
||||
var version = reference.Range.FindBestMatch(items.Values.Select(b => b.CatalogEntry.Version));
|
||||
|
||||
if (version is null)
|
||||
throw new Exception($"Unable to find version for package {reference.Id}");
|
||||
|
||||
var package = new Package(order, reference.Id, version, []); // todo resolve dependencies
|
||||
|
||||
if (packages.Add(package))
|
||||
if (packages.TryAdd(package, items[version].CatalogEntry))
|
||||
continue;
|
||||
|
||||
if (!packages.TryGetValue(package, out var existingPackage))
|
||||
if (!packages.TryGetValue(package, out _))
|
||||
throw new Exception($"Duplicate package {package.Id}");
|
||||
|
||||
var existingPackage = packages.Keys.First(b => b.Version == package.Version && b.Id == package.Id);
|
||||
|
||||
if (package.Version < existingPackage.Version)
|
||||
throw new Exception($"Package reference {package.Id} has lower version {package.Version} than already resolved {existingPackage.Version}");
|
||||
|
||||
@@ -49,17 +49,13 @@ public class PackageResolver(NuGetFramework runtimeFramework, ImmutableArray<Pac
|
||||
packages.Add(package with
|
||||
{
|
||||
Order = ++order
|
||||
});
|
||||
}, items[version].CatalogEntry);
|
||||
}
|
||||
|
||||
var set = ImmutableHashSet<ResolvedPackage>.Empty.ToBuilder();
|
||||
foreach (var package in packages)
|
||||
foreach (var (package, catalogEntry) in packages)
|
||||
{
|
||||
var client = await packageSources.GetClientAsync(package.Id);
|
||||
|
||||
var (catalogEntryUrl, catalogEntry) = await client.GetPackageRegistrationAsync(package.Id, package.Version);
|
||||
|
||||
catalogEntry ??= await client.GetPackageCatalogEntryAsync(catalogEntryUrl);
|
||||
|
||||
var nearestGroup = NuGetFrameworkUtility.GetNearest(catalogEntry.DependencyGroups, runtimeFramework,
|
||||
g => g.TargetFramework);
|
||||
|
Reference in New Issue
Block a user