fix: include requested package in startup roster
This commit is contained in:
@@ -33,8 +33,14 @@ public static class StartupRosterPreflight
|
|||||||
foreach (var root in additionalRoots ?? DiscoverKnownRoots())
|
foreach (var root in additionalRoots ?? DiscoverKnownRoots())
|
||||||
if (!string.IsNullOrWhiteSpace(root) && Directory.Exists(root)) roots.Add(Path.GetFullPath(root));
|
if (!string.IsNullOrWhiteSpace(root) && Directory.Exists(root)) roots.Add(Path.GetFullPath(root));
|
||||||
var entries = new List<StartupRosterEntry>();
|
var entries = new List<StartupRosterEntry>();
|
||||||
foreach (var root in roots) DiscoverRoot(root, requested, entries);
|
var requestedPath = Path.Combine(Path.GetFullPath(requestedPackageRoot), requested.EntryAssembly);
|
||||||
var requestedHash = requested.Files.FirstOrDefault(f => f.Path.Equals(requested.EntryAssembly, StringComparison.OrdinalIgnoreCase))?.Sha256;
|
var requestedHash = requested.Files.FirstOrDefault(f => f.Path.Equals(requested.EntryAssembly, StringComparison.OrdinalIgnoreCase))?.Sha256;
|
||||||
|
if (File.Exists(requestedPath))
|
||||||
|
entries.Add(new("RequestedPackage", requested.Startup.Type + ":" + requested.Startup.Command, requested.PackageId, requested.Version,
|
||||||
|
requested.EntryAssembly, requestedPath, Convert.ToHexString(SHA256.HashData(File.ReadAllBytes(requestedPath))), true, "before-netload"));
|
||||||
|
else entries.Add(new("RequestedPackage", requested.Startup.Type + ":" + requested.Startup.Command, requested.PackageId, requested.Version,
|
||||||
|
requested.EntryAssembly, null, requestedHash, false, "before-netload"));
|
||||||
|
foreach (var root in roots) DiscoverRoot(root, requested, entries);
|
||||||
var eligible = entries.Where(e => e.Eligible).ToArray();
|
var eligible = entries.Where(e => e.Eligible).ToArray();
|
||||||
StartupRosterCandidateStatus status;
|
StartupRosterCandidateStatus status;
|
||||||
if (entries.Any(e => e.EntryPath is null || e.EntrySha256 is null)) status = StartupRosterCandidateStatus.UnresolvedStartupEntry;
|
if (entries.Any(e => e.EntryPath is null || e.EntrySha256 is null)) status = StartupRosterCandidateStatus.UnresolvedStartupEntry;
|
||||||
|
|||||||
Reference in New Issue
Block a user