mirror of
https://github.com/BepInEx/BepInEx.git
synced 2026-10-20 01:46:13 +00:00
Add PatcherPluginPath to TypeLoader resolver
This is sometimes needed if a plugin references preloader patchers in an unexpected way
This commit is contained in:
1 parent
2e1dce72af
commit
d5ab110c4d
1 file changed
+12
-7
@@ -68,15 +68,20 @@ namespace BepInEx.Bootstrap
|
||||
|
||||
Resolver.ResolveFailure += (sender, reference) =>
|
||||
{
|
||||
if (Utility.TryParseAssemblyName(reference.FullName, out var name) &&
|
||||
(Utility.TryResolveDllAssembly(name, Paths.BepInExAssemblyDirectory, ReaderParameters, out var assembly) ||
|
||||
Utility.TryResolveDllAssembly(name, Paths.PluginPath, ReaderParameters, out assembly)))
|
||||
return assembly;
|
||||
if (!Utility.TryParseAssemblyName(reference.FullName, out var name))
|
||||
return AssemblyResolve?.Invoke(sender, reference);
|
||||
|
||||
foreach (string dllSearchPath in Paths.DllSearchPaths)
|
||||
if (Utility.TryResolveDllAssembly(name, dllSearchPath, ReaderParameters, out assembly))
|
||||
return assembly;
|
||||
var resolvePaths = new[]
|
||||
{
|
||||
Paths.BepInExAssemblyDirectory,
|
||||
Paths.PluginPath,
|
||||
Paths.PatcherPluginPath
|
||||
}.Concat(Paths.DllSearchPaths);
|
||||
|
||||
foreach (string dllSearchPath in resolvePaths)
|
||||
if (Utility.TryResolveDllAssembly(name, dllSearchPath, ReaderParameters, out var assembly))
|
||||
return assembly;
|
||||
|
||||
return AssemblyResolve?.Invoke(sender, reference);
|
||||
};
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user