diff options
| author | Claus Vium <cvium@users.noreply.github.com> | 2021-01-25 12:04:25 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-01-25 12:04:25 +0100 |
| commit | f82e6ee8cccc1d3bdfad44255983387878ed8279 (patch) | |
| tree | 85e89db576b4448b13e0f8568c30ab3eda5a5ce6 /Emby.Server.Implementations | |
| parent | 98a4e1b8402c37703344113e302167b5e2721d5f (diff) | |
| parent | b014f2309d546779d7e9530daa1ddd55741cbb32 (diff) | |
Merge pull request #5090 from Ullmie02/plugin-startup-fix
Diffstat (limited to 'Emby.Server.Implementations')
| -rw-r--r-- | Emby.Server.Implementations/Plugins/PluginManager.cs | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/Emby.Server.Implementations/Plugins/PluginManager.cs b/Emby.Server.Implementations/Plugins/PluginManager.cs index 9f597f3ef..adf62124a 100644 --- a/Emby.Server.Implementations/Plugins/PluginManager.cs +++ b/Emby.Server.Implementations/Plugins/PluginManager.cs @@ -112,8 +112,6 @@ namespace Emby.Server.Implementations.Plugins { assembly = Assembly.LoadFrom(file); - // This force loads all reference dll's that the plugin uses in the try..catch block. - // Removing this will cause JF to bomb out if referenced dll's cause issues. assembly.GetExportedTypes(); } catch (FileLoadException ex) @@ -122,6 +120,20 @@ namespace Emby.Server.Implementations.Plugins ChangePluginState(plugin, PluginStatus.Malfunctioned); continue; } + catch (TypeLoadException ex) // 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); + continue; + } +#pragma warning disable CA1031 // Do not catch general exception types + catch (Exception ex) +#pragma warning restore CA1031 // Do not catch general exception types + { + _logger.LogError(ex, "Failed to load assembly {Path}. Unknown exception was thrown. Disabling plugin.", file); + ChangePluginState(plugin, PluginStatus.Malfunctioned); + continue; + } _logger.LogInformation("Loaded assembly {Assembly} from {Path}", assembly.FullName, file); yield return assembly; |
