Plugin setting migration to folders.

This commit is contained in:
Greenback
2020-12-15 00:42:59 +00:00
parent 494ace7984
commit fbb20ebef6
3 changed files with 50 additions and 8 deletions

View File

@@ -406,10 +406,7 @@ namespace Emby.Server.Implementations
Logger.LogError("Called from: {stack}", entry.FullName);
}
if (type is IPlugin)
{
_pluginManager.FailPlugin(type.Assembly);
}
_pluginManager.FailPlugin(type.Assembly);
throw new ExternalException("DI Loop detected.");
}

View File

@@ -296,7 +296,7 @@ namespace Emby.Server.Implementations
return;
}
if (!ChangePluginState(predecessor, PluginStatus.Superceded))
if (predecessor.Manifest.Status == PluginStatus.Active && !ChangePluginState(predecessor, PluginStatus.Superceded))
{
_logger.LogError("Unable to disable version {Version} of {Name}", predecessor.Version, predecessor.Name);
}
@@ -314,7 +314,10 @@ namespace Emby.Server.Implementations
throw new ArgumentNullException(nameof(assembly));
}
var plugin = _plugins.Where(p => assembly.Equals(p.Assembly)).FirstOrDefault();
var plugin = _plugins.Where(
p => assembly.Equals(p.Assembly)
|| string.Equals(assembly.Location, assembly.Location, StringComparison.OrdinalIgnoreCase))
.FirstOrDefault();
if (plugin == null)
{
// A plugin's assembly didn't cause this issue, so ignore it.
@@ -403,6 +406,10 @@ namespace Emby.Server.Implementations
{
// Find the record for this plugin.
var plugin = GetPluginByType(type);
if (plugin?.Manifest.Status < PluginStatus.Active)
{
return null;
}
try
{