From 509156cbc3497ff8daabefd3dba843f5b085701a Mon Sep 17 00:00:00 2001 From: LukePulverenti Date: Wed, 20 Feb 2013 21:40:36 -0500 Subject: remove core plugin output from source control --- MediaBrowser.Common/Kernel/BaseKernel.cs | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) (limited to 'MediaBrowser.Common/Kernel/BaseKernel.cs') diff --git a/MediaBrowser.Common/Kernel/BaseKernel.cs b/MediaBrowser.Common/Kernel/BaseKernel.cs index a4cd81665..616a0305c 100644 --- a/MediaBrowser.Common/Kernel/BaseKernel.cs +++ b/MediaBrowser.Common/Kernel/BaseKernel.cs @@ -3,7 +3,6 @@ using MediaBrowser.Common.IO; using MediaBrowser.Common.Localization; using MediaBrowser.Common.Mef; using MediaBrowser.Common.Net; -using MediaBrowser.Common.Net.Handlers; using MediaBrowser.Common.Plugins; using MediaBrowser.Common.ScheduledTasks; using MediaBrowser.Common.Serialization; @@ -17,7 +16,6 @@ using System; using System.Collections.Generic; using System.ComponentModel.Composition; using System.ComponentModel.Composition.Hosting; -using System.ComponentModel.Composition.Primitives; using System.Deployment.Application; using System.Diagnostics; using System.IO; @@ -517,6 +515,31 @@ namespace MediaBrowser.Common.Kernel yield return pluginAssembly; } + var runningDirectory = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName); + var corePluginDirectory = Path.Combine(runningDirectory, "CorePlugins"); + + // This will prevent the .dll file from getting locked, and allow us to replace it when needed + pluginAssemblies = Directory.EnumerateFiles(corePluginDirectory, "*.dll", SearchOption.TopDirectoryOnly) + .Select(file => + { + try + { + return Assembly.Load(File.ReadAllBytes((file))); + } + catch (Exception ex) + { + _failedPluginAssemblies.Add(file); + Logger.ErrorException("Error loading {0}", ex, file); + return null; + } + + }).Where(a => a != null); + + foreach (var pluginAssembly in pluginAssemblies) + { + yield return pluginAssembly; + } + // Include composable parts in the Model assembly yield return typeof (SystemInfo).Assembly; -- cgit v1.2.3