From 5780cf7c95de533b9b51ac300266c61ea40d10a0 Mon Sep 17 00:00:00 2001 From: Brant Martin Date: Thu, 31 Oct 2019 18:18:19 -0400 Subject: [PATCH] Quick and dirty hack to resolve dll conflicts --- Torch/Plugins/PluginManager.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/Torch/Plugins/PluginManager.cs b/Torch/Plugins/PluginManager.cs index f1097e0..f81f1ba 100644 --- a/Torch/Plugins/PluginManager.cs +++ b/Torch/Plugins/PluginManager.cs @@ -330,6 +330,8 @@ namespace Torch.Managers private void LoadPlugin(PluginItem item) { var assemblies = new List(); + + var loaded = AppDomain.CurrentDomain.GetAssemblies(); if (item.IsZip) { @@ -340,6 +342,9 @@ namespace Torch.Managers if (!entry.Name.EndsWith(".dll", StringComparison.CurrentCultureIgnoreCase)) continue; + if (loaded.Any(a => entry.Name.Contains(a.GetName().Name))) + continue; + using (var stream = entry.Open()) { @@ -375,6 +380,9 @@ namespace Torch.Managers if (!file.EndsWith(".dll", StringComparison.CurrentCultureIgnoreCase)) continue; + if (loaded.Any(a => file.Contains(a.GetName().Name))) + continue; + using (var stream = File.OpenRead(file)) { var data = stream.ReadToEnd(); @@ -391,7 +399,7 @@ namespace Torch.Managers { _log.Warn(e, $"Failed to read debugging symbols from {symbolPath}"); } - + assemblies.Add(symbol != null ? Assembly.Load(data, symbol) : Assembly.Load(data)); } }