Files
se-launcher/CringeBootstrap/Program.cs
2024-10-22 21:39:31 +07:00

32 lines
824 B
C#

using System.Diagnostics;
using System.Reflection;
using System.Runtime.Loader;
using CringeBootstrap;
using CringeBootstrap.Abstractions;
using Velopack;
#if DEBUG
while (!Debugger.IsAttached)
Thread.Sleep(100);
#endif
VelopackApp.Build().Run();
AssemblyLoadContext.Default.Resolving += (loadContext, name) =>
{
Debug.WriteLine($"resolving {name} in {loadContext}");
return null;
};
var dir = Path.GetDirectoryName(args[0])!;
var context = new GameDirectoryAssemblyLoadContext(dir);
context.AddDependencyOverride("CringeLauncher");
context.AddDependencyOverride("PluginLoader");
var launcher = context.LoadFromAssemblyName(new AssemblyName("CringeLauncher"));
using var corePlugin = (ICorePlugin) launcher.CreateInstance("CringeLauncher.Launcher")!;
corePlugin.Initialize(args);
corePlugin.Run();