mirror of
https://github.com/BepInEx/BepInEx.git
synced 2026-10-20 01:46:13 +00:00
Fix missing dependencies causing chainloader crash
This commit is contained in:
1 parent
4101895c5d
commit
30839f36a2
1 file changed
+19
-1
+19
-1
@@ -55,7 +55,25 @@ namespace BepInEx
|
||||
|
||||
BepInLogger.Log($"{pluginTypes.Count} plugins found");
|
||||
|
||||
pluginTypes = TopologicalSort(pluginTypes, x => TypeLoader.GetDependencies(x, pluginTypes)).ToList();
|
||||
Dictionary<Type, IEnumerable<Type>> dependencyDict = new Dictionary<Type, IEnumerable<Type>>();
|
||||
|
||||
foreach (Type t in pluginTypes)
|
||||
{
|
||||
try
|
||||
{
|
||||
IEnumerable<Type> dependencies = TypeLoader.GetDependencies(t, pluginTypes);
|
||||
|
||||
dependencyDict[t] = dependencies;
|
||||
}
|
||||
catch (MissingDependencyException)
|
||||
{
|
||||
var metadata = TypeLoader.GetMetadata(t);
|
||||
|
||||
BepInLogger.Log($"Cannot load [{metadata.Name}] due to missing dependencies.");
|
||||
}
|
||||
}
|
||||
|
||||
pluginTypes = TopologicalSort(dependencyDict.Keys, x => dependencyDict[x]).ToList();
|
||||
|
||||
foreach (Type t in pluginTypes)
|
||||
{
|
||||
|
||||
Reference in new issue
Block a user