public void StartupPluginLoaderTest()
        {
            CoreStartup start = new CoreStartup("TickZoomTest");

            start.StartCoreServices();
            start.RunInitialization();
            string addInConfig =
                @"<Plugin name        = ""LoaderTests""
       author      = ""Wayne Walter""
       url         = """"
       description = ""TODO: Put description here"">
	
	<Runtime>
		<Import assembly = ""TickZoomLoaderTests.dll""/>
	</Runtime>
	
	<Path name = ""/Tests/Loaders"">
		<Extension id=""MyLoader"" class=""TestLoader""/>
	</Path>
</Plugin>";
            var    reader = new StringReader(addInConfig);
            Plugin plugin = Plugin.Load(reader, ".");

            plugin.Enabled = true;
            PluginTree.InsertPlugin(plugin);
            ModelLoaderInterface loader = (ModelLoaderInterface)PluginTree.BuildItem("/Tests/Loaders/MyLoader", this);

            Assert.IsNotNull(loader);
        }
        /// <summary>
        /// Adds the specified external Plugins to the list of registered external
        /// Plugins.
        /// </summary>
        /// <param name="plugins">
        /// The list of Plugins to add. (use <see cref="Plugin"/> instances
        /// created by <see cref="Plugin.Load(TextReader)"/>).
        /// </param>
        public static void AddExternalPlugins(IList <Plugin> plugins)
        {
            List <string> pluginFiles = new List <string>();
            List <string> disabled    = new List <string>();

            LoadPluginConfiguration(pluginFiles, disabled);

            foreach (Plugin plugin in plugins)
            {
                if (!pluginFiles.Contains(plugin.FileName))
                {
                    pluginFiles.Add(plugin.FileName);
                }
                plugin.Enabled = false;
                plugin.Action  = PluginAction.Install;
                PluginTree.InsertPlugin(plugin);
            }

            SavePluginConfiguration(pluginFiles, disabled);
        }