Преглед на файлове

Merge pull request #6791 from cvium/fix_plugin_loading

Bond-009 преди 3 години
родител
ревизия
8d8e113771
променени са 1 файла, в които са добавени 3 реда и са изтрити 2 реда
  1. 3 2
      Emby.Server.Implementations/Plugins/PluginManager.cs

+ 3 - 2
Emby.Server.Implementations/Plugins/PluginManager.cs

@@ -126,7 +126,8 @@ namespace Emby.Server.Implementations.Plugins
                     {
                     {
                         assembly = Assembly.LoadFrom(file);
                         assembly = Assembly.LoadFrom(file);
 
 
-                        assembly.GetExportedTypes();
+                        // Load all required types to verify that the plugin will load
+                        assembly.GetTypes();
                     }
                     }
                     catch (FileLoadException ex)
                     catch (FileLoadException ex)
                     {
                     {
@@ -134,7 +135,7 @@ namespace Emby.Server.Implementations.Plugins
                         ChangePluginState(plugin, PluginStatus.Malfunctioned);
                         ChangePluginState(plugin, PluginStatus.Malfunctioned);
                         continue;
                         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);
                         _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);
                         ChangePluginState(plugin, PluginStatus.NotSupported);