Fix missing dependencies causing chainloader crash

This commit is contained in:
Bepis committed 2018-04-01 02:14:39 +10:00
1 parent 4101895c5d
commit 30839f36a2
1 file changed
+19 -1
+19 -1
View File
@@ -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)
{