From 5780cf7c95de533b9b51ac300266c61ea40d10a0 Mon Sep 17 00:00:00 2001 From: Brant Martin Date: Thu, 31 Oct 2019 18:18:19 -0400 Subject: [PATCH 1/2] 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)); } } From c18d6d479581610b4b9423ba76579e2c1fae0968 Mon Sep 17 00:00:00 2001 From: Brant Martin Date: Fri, 1 Nov 2019 12:18:21 -0400 Subject: [PATCH 2/2] Unhack the hack --- Torch/Plugins/PluginManager.cs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Torch/Plugins/PluginManager.cs b/Torch/Plugins/PluginManager.cs index f81f1ba..6ac9445 100644 --- a/Torch/Plugins/PluginManager.cs +++ b/Torch/Plugins/PluginManager.cs @@ -342,8 +342,8 @@ namespace Torch.Managers if (!entry.Name.EndsWith(".dll", StringComparison.CurrentCultureIgnoreCase)) continue; - if (loaded.Any(a => entry.Name.Contains(a.GetName().Name))) - continue; + //if (loaded.Any(a => entry.Name.Contains(a.GetName().Name))) + // continue; using (var stream = entry.Open()) @@ -380,8 +380,8 @@ namespace Torch.Managers if (!file.EndsWith(".dll", StringComparison.CurrentCultureIgnoreCase)) continue; - if (loaded.Any(a => file.Contains(a.GetName().Name))) - continue; + //if (loaded.Any(a => file.Contains(a.GetName().Name))) + // continue; using (var stream = File.OpenRead(file)) {