Pārlūkot izejas kodu

Change plugin error message

David 4 gadi atpakaļ
vecāks
revīzija
80f3e20394
1 mainītis faili ar 10 papildinājumiem un 9 dzēšanām
  1. 10 9
      Emby.Server.Implementations/Plugins/PluginManager.cs

+ 10 - 9
Emby.Server.Implementations/Plugins/PluginManager.cs

@@ -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;