From 34a1eb0b9ce47cbabf48de340b32d355087a89c0 Mon Sep 17 00:00:00 2001 From: Aireil <33433913+Aireil@users.noreply.github.com> Date: Mon, 15 Feb 2021 13:03:17 +0100 Subject: [PATCH 1/2] Log LoaderException exceptions when loading plugins --- Dalamud/Plugin/PluginManager.cs | 6 ++++++ Dalamud/Plugin/PluginRepository.cs | 15 +++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/Dalamud/Plugin/PluginManager.cs b/Dalamud/Plugin/PluginManager.cs index e0cac1c68..0a6a4b925 100644 --- a/Dalamud/Plugin/PluginManager.cs +++ b/Dalamud/Plugin/PluginManager.cs @@ -104,6 +104,12 @@ namespace Dalamud.Plugin } catch (Exception ex) { Log.Error(ex, $"Plugin load for {dllFile.FullName} failed."); + if (ex is ReflectionTypeLoadException) { + var typeLoadException = ex as ReflectionTypeLoadException; + foreach (var exception in typeLoadException.LoaderExceptions) { + Log.Error(exception, "LoaderException:"); + } + } } } } diff --git a/Dalamud/Plugin/PluginRepository.cs b/Dalamud/Plugin/PluginRepository.cs index 7a8733af1..390544157 100644 --- a/Dalamud/Plugin/PluginRepository.cs +++ b/Dalamud/Plugin/PluginRepository.cs @@ -6,6 +6,7 @@ using System.IO; using System.IO.Compression; using System.Linq; using System.Net; +using System.Reflection; using System.Text; using System.Threading.Tasks; using CheapLoc; @@ -149,8 +150,14 @@ namespace Dalamud.Plugin return this.dalamud.PluginManager.LoadPluginFromAssembly(dllFile, false, PluginLoadReason.Installer); } - catch (Exception e) { - Log.Error(e, "Plugin download failed hard."); + catch (Exception ex) { + Log.Error(ex, "Plugin download failed hard."); + if (ex is ReflectionTypeLoadException) { + var typeLoadException = ex as ReflectionTypeLoadException; + foreach (var exception in typeLoadException.LoaderExceptions) { + Log.Error(exception, "LoaderException:"); + } + } return false; } } @@ -287,8 +294,8 @@ namespace Dalamud.Plugin } } } - catch (Exception e) { - Log.Error(e, "Plugin update failed."); + catch (Exception ex) { + Log.Error(ex, "Plugin update failed."); hasError = true; } From 2e4f11b2ad3b18e9a4d42c4431b0c690925a35d3 Mon Sep 17 00:00:00 2001 From: Aireil <33433913+Aireil@users.noreply.github.com> Date: Mon, 15 Feb 2021 13:26:57 +0100 Subject: [PATCH 2/2] Simplify casting of ReflectionTypeLoadException --- Dalamud/Plugin/PluginManager.cs | 3 +-- Dalamud/Plugin/PluginRepository.cs | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/Dalamud/Plugin/PluginManager.cs b/Dalamud/Plugin/PluginManager.cs index 0a6a4b925..2ea2aaa55 100644 --- a/Dalamud/Plugin/PluginManager.cs +++ b/Dalamud/Plugin/PluginManager.cs @@ -104,8 +104,7 @@ namespace Dalamud.Plugin } catch (Exception ex) { Log.Error(ex, $"Plugin load for {dllFile.FullName} failed."); - if (ex is ReflectionTypeLoadException) { - var typeLoadException = ex as ReflectionTypeLoadException; + if (ex is ReflectionTypeLoadException typeLoadException) { foreach (var exception in typeLoadException.LoaderExceptions) { Log.Error(exception, "LoaderException:"); } diff --git a/Dalamud/Plugin/PluginRepository.cs b/Dalamud/Plugin/PluginRepository.cs index 390544157..d56c43ca0 100644 --- a/Dalamud/Plugin/PluginRepository.cs +++ b/Dalamud/Plugin/PluginRepository.cs @@ -152,8 +152,7 @@ namespace Dalamud.Plugin } catch (Exception ex) { Log.Error(ex, "Plugin download failed hard."); - if (ex is ReflectionTypeLoadException) { - var typeLoadException = ex as ReflectionTypeLoadException; + if (ex is ReflectionTypeLoadException typeLoadException) { foreach (var exception in typeLoadException.LoaderExceptions) { Log.Error(exception, "LoaderException:"); }