diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs index 5d47d1e401..74e472be69 100644 --- a/Emby.Server.Implementations/ApplicationHost.cs +++ b/Emby.Server.Implementations/ApplicationHost.cs @@ -181,6 +181,8 @@ namespace Emby.Server.Implementations private IPlugin[] _plugins; + private IEnumerable _pluginsManifests; + /// /// Gets the plugins. /// @@ -772,6 +774,23 @@ namespace Emby.Server.Implementations foreach (var plugin in Plugins) { + if (plugin is IPluginAssembly assemblyPlugin) + { + // Ensure the version number matches the Plugin Manifest information. + foreach (var item in _pluginsManifests) + { + if (item.Path.Equals(plugin.AssemblyFilePath, StringComparison.OrdinalIgnoreCase)) + { + // Update version number to that of the manifest. + assemblyPlugin.SetAttributes( + plugin.AssemblyFilePath, + Path.Combine(ApplicationPaths.PluginsPath, Path.GetFileNameWithoutExtension(plugin.AssemblyFilePath)), + item.Version); + break; + } + } + } + pluginBuilder.Append(plugin.Name) .Append(' ') .Append(plugin.Version) @@ -1093,7 +1112,8 @@ namespace Emby.Server.Implementations { if (Directory.Exists(ApplicationPaths.PluginsPath)) { - foreach (var plugin in GetLocalPlugins(ApplicationPaths.PluginsPath)) + _pluginsManifests = GetLocalPlugins(ApplicationPaths.PluginsPath); + foreach (var plugin in _pluginsManifests) { foreach (var file in plugin.DllFiles) {