|
@@ -112,9 +112,16 @@ 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();
|
|
|
+ try
|
|
|
+ {
|
|
|
+ assembly.GetExportedTypes();
|
|
|
+ }
|
|
|
+ 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;
|
|
|
+ }
|
|
|
}
|
|
|
catch (FileLoadException ex)
|
|
|
{
|
|
@@ -122,12 +129,6 @@ namespace Emby.Server.Implementations.Plugins
|
|
|
ChangePluginState(plugin, PluginStatus.Malfunctioned);
|
|
|
continue;
|
|
|
}
|
|
|
- catch (TypeLoadException ex)
|
|
|
- {
|
|
|
- _logger.LogError(ex, "Failed to load assembly {Path}. Disabling plugin. This is probably caused by an incompatible plugin version.", file);
|
|
|
- ChangePluginState(plugin, PluginStatus.Malfunctioned);
|
|
|
- continue;
|
|
|
- }
|
|
|
|
|
|
_logger.LogInformation("Loaded assembly {Assembly} from {Path}", assembly.FullName, file);
|
|
|
yield return assembly;
|