diff options
| author | cvium <clausvium@gmail.com> | 2021-11-06 22:44:05 +0100 |
|---|---|---|
| committer | cvium <clausvium@gmail.com> | 2021-11-06 22:44:05 +0100 |
| commit | d95c281142462277560e1f9ac8d9e28db9c7b242 (patch) | |
| tree | f574f8d45e0772bb2734e764a41bed8dfb6b9ced | |
| parent | b64d9bcd401d68e12b7e0ef2e2fdb55b895e211a (diff) | |
Load all types when checking plugin DLLs
| -rw-r--r-- | Emby.Server.Implementations/Plugins/PluginManager.cs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/Emby.Server.Implementations/Plugins/PluginManager.cs b/Emby.Server.Implementations/Plugins/PluginManager.cs index d52c0b2a1..d70a15dbc 100644 --- a/Emby.Server.Implementations/Plugins/PluginManager.cs +++ b/Emby.Server.Implementations/Plugins/PluginManager.cs @@ -126,7 +126,8 @@ namespace Emby.Server.Implementations.Plugins { assembly = Assembly.LoadFrom(file); - assembly.GetExportedTypes(); + // Load all required types to verify that the plugin will load + assembly.GetTypes(); } catch (FileLoadException ex) { @@ -134,7 +135,7 @@ namespace Emby.Server.Implementations.Plugins ChangePluginState(plugin, PluginStatus.Malfunctioned); continue; } - catch (TypeLoadException ex) // Undocumented exception + catch (SystemException ex) when (ex is TypeLoadException or ReflectionTypeLoadException) // Undocumented exception { _logger.LogError(ex, "Failed to load assembly {Path}. This error occurs when a plugin references an incompatible version of one of the shared libraries. Disabling plugin.", file); ChangePluginState(plugin, PluginStatus.NotSupported); |
