diff --git a/Launcher.Next.Core/StartupRosterPreflight.cs b/Launcher.Next.Core/StartupRosterPreflight.cs index 3189331..77c1735 100644 --- a/Launcher.Next.Core/StartupRosterPreflight.cs +++ b/Launcher.Next.Core/StartupRosterPreflight.cs @@ -33,8 +33,14 @@ public static class StartupRosterPreflight foreach (var root in additionalRoots ?? DiscoverKnownRoots()) if (!string.IsNullOrWhiteSpace(root) && Directory.Exists(root)) roots.Add(Path.GetFullPath(root)); var entries = new List(); - 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; + 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(); StartupRosterCandidateStatus status; if (entries.Any(e => e.EntryPath is null || e.EntrySha256 is null)) status = StartupRosterCandidateStatus.UnresolvedStartupEntry;