From 990b85d0601ce9a4eaac01183b3a19efc33ac314 Mon Sep 17 00:00:00 2001 From: Bepis <36346617+bbepis@users.noreply.github.com> Date: Thu, 5 Nov 2020 17:20:31 +1100 Subject: [PATCH] Ignore case in TargetDLLs assembly names Rebase of 474c2216a3808685f741cefa2cb9564a1d315fc7 --- BepInEx.Preloader.Core/Patching/AssemblyPatcher.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/BepInEx.Preloader.Core/Patching/AssemblyPatcher.cs b/BepInEx.Preloader.Core/Patching/AssemblyPatcher.cs index 199db88..f189b7e 100644 --- a/BepInEx.Preloader.Core/Patching/AssemblyPatcher.cs +++ b/BepInEx.Preloader.Core/Patching/AssemblyPatcher.cs @@ -265,14 +265,14 @@ namespace BepInEx.Preloader.Core public void PatchAndLoad() { // First, create a copy of the assembly dictionary as the initializer can change them - var assemblies = new Dictionary(AssembliesToPatch); + var assemblies = new Dictionary(AssembliesToPatch, StringComparer.InvariantCultureIgnoreCase); // Next, initialize all the patchers foreach (var assemblyPatcher1 in PatcherPlugins) assemblyPatcher1.Initializer?.Invoke(); // Then, perform the actual patching - var patchedAssemblies = new HashSet(); + var patchedAssemblies = new HashSet(StringComparer.InvariantCultureIgnoreCase); var resolvedAssemblies = new Dictionary(); foreach (var assemblyPatcher in PatcherPlugins) foreach (string targetDll in assemblyPatcher.TargetDLLs()) @@ -295,7 +295,7 @@ namespace BepInEx.Preloader.Core // Check if any patched assemblies have been already resolved by the CLR // If there are any, they cannot be loaded by the preloader - var patchedAssemblyNames = new HashSet(assemblies.Where(kv => patchedAssemblies.Contains(kv.Key)).Select(kv => kv.Value.Name.Name)); + var patchedAssemblyNames = new HashSet(assemblies.Where(kv => patchedAssemblies.Contains(kv.Key)).Select(kv => kv.Value.Name.Name), StringComparer.InvariantCultureIgnoreCase); var earlyLoadAssemblies = resolvedAssemblies.Where(kv => patchedAssemblyNames.Contains(kv.Key)).ToList(); if (earlyLoadAssemblies.Count != 0)