mirror of
https://github.com/BepInEx/BepInEx.git
synced 2026-10-20 01:46:13 +00:00
Fix preloader crash when assembly name is invalid (e.g. autogenerated by MM)
This commit is contained in:
1 parent
c9503aa19e
commit
c2f1d3aede
1 file changed
+14
-1
@@ -170,6 +170,19 @@ namespace BepInEx.Preloader.Patching
|
||||
PatcherPlugins.Clear();
|
||||
}
|
||||
|
||||
private static string GetAssemblyName(string fullName)
|
||||
{
|
||||
// We need to manually parse full name to avoid issues with encoding on mono
|
||||
try
|
||||
{
|
||||
return new AssemblyName(fullName).Name;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
return fullName;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Applies patchers to all assemblies in the given directory and loads patched assemblies into memory.
|
||||
/// </summary>
|
||||
@@ -231,7 +244,7 @@ namespace BepInEx.Preloader.Patching
|
||||
|
||||
foreach (var resolvedAss in AppDomain.CurrentDomain.GetAssemblies())
|
||||
{
|
||||
var name = new AssemblyName(resolvedAss.FullName).Name;
|
||||
var name = GetAssemblyName(resolvedAss.FullName);
|
||||
// Report only the first type that caused the assembly to load, because any subsequent ones can be false positives
|
||||
if (!resolvedAssemblies.ContainsKey(name))
|
||||
resolvedAssemblies[name] = assemblyPatcher.TypeName;
|
||||
|
||||
Reference in new issue
Block a user