public AddinDatabase (AddinEngine addinEngine, AddinRegistry registry) { this.addinEngine = addinEngine; this.registry = registry; addinDbDir = Path.Combine (registry.AddinCachePath, "addin-db-" + VersionTag); fileDatabase = new FileDatabase (AddinDbDir); }
public void Rescan() { var dir = Util.GetSampleDirectory("ScanDataFilesTest"); // Generate the scan data files before initializing the engine var registry = GetRegistry(dir); registry.GenerateAddinScanDataFiles(new ConsoleProgressStatus(true), recursive: true); registry.Dispose(); AddinEngine engine = new AddinEngine(); engine.Initialize(Path.Combine(dir, "Config"), Path.Combine(dir, "UserAddins"), null, Path.Combine(dir, "App")); registry = engine.Registry; registry.Update(new ConsoleProgressStatus(false)); engine.LoadAddin(null, "SimpleApp.Core,0.1.0"); engine.LoadAddin(null, "SimpleApp.Ext2,0.1.0"); File.Delete(Path.Combine(dir, "UserAddins", "SimpleAddin4.addin.xml")); registry.Update(new ConsoleProgressStatus(false)); engine.Shutdown(); }
public MainForm() { InitializeComponent(); txtInformation.Text = GetLoadedAssemblies(); var adnOptions = AddinOptions.Create() .WithMessageDialog(new MessageDialog()) .WithFileSettings(new AddinFileSettings()); _addinEngine = new AddinEngine(adnOptions); _addinEngine.Start(true); RefreshInformationArea(); }
static void DoInitialize() { //var trustLevel = WebHelper.GetTrustLevel(); if (_addinEngine != null) { return; } var fileSettings = new AddinFileSettings(AddinFileSettings.DefaultAddinDataDirectory, new[] { "bin" }, new[] { AddinFileSettings.DefaultAddinProbingDirectory }); var addinOptions = AddinOptions.Create().WithAssemblyLoadPolicy(new MvcAssemblyLoadPolicy()).WithFileSettings(fileSettings); _addinEngine = new AddinEngine(addinOptions); _addinEngine.Initialize(true); var addins = _addinEngine.GetAllAddins(); foreach (var addin in addins) { PrepareAddin(addin); } _addinEngine.Start(); //addins = _addinEngine.GetStartedAddins(); ////var probingPath = AppDomain.CurrentDomain.SetupInformation.PrivateBinPath; //foreach (var addin in addins) //{ // //probingPath += addin.File.BaseDirectory + ";"; // //var asms = addin.Runtime.LoadAssemblies(); // //foreach (var asm in asms) // // BuildManagerHelper.AddReferencedAssemblyNormally(asm); //} ////AppDomain.CurrentDomain.SetupInformation.PrivateBinPath = probingPath; //var menustrip = new MvcMenuStrip(); //_addinEngine.LoadExtensionPoint(menustrip); //_addinEngine.Framework.SetProperty("MvcMenuStrip", menustrip); }
public void GenerateAndLoadScanDataFiles() { var dir = Util.GetSampleDirectory("ScanDataFilesTest"); var registry = GetRegistry(dir); registry.GenerateAddinScanDataFiles(new ConsoleProgressStatus(true), recursive: true); // Check that data files have been generated Assert.IsTrue(File.Exists(Path.Combine(dir, "App", "dir.addindata"))); Assert.IsTrue(File.Exists(Path.Combine(dir, "App", "SimpleAddin1.addin.xml.addindata"))); Assert.IsTrue(File.Exists(Path.Combine(dir, "App", "SimpleApp.addin.xml.addindata"))); Assert.IsTrue(File.Exists(Path.Combine(dir, "Addins", "SimpleAddin2.addin.xml.addindata"))); Assert.IsTrue(File.Exists(Path.Combine(dir, "Addins", "SimpleAddin3.addin.xml.addindata"))); // But not for user add-ins Assert.IsFalse(File.Exists(Path.Combine(dir, "UserAddins", "SimpleAddin4.addin.xml.addindata"))); var fs = new TestAddinFileSystemExtension(); var scanData = fs.FileList; registry.RegisterExtension(fs); registry.Update(); // Check that add-in files are not loaded, with the exception of user add-ins Assert.AreEqual(1, scanData.OpenedFiles.Count); Assert.Contains(Path.Combine(dir, "UserAddins", "SimpleAddin4.addin.xml"), scanData.OpenedFiles); var addins = registry.GetAddins().Select(a => a.Id).ToArray(); Assert.AreEqual(4, addins.Length); Assert.Contains("SimpleApp.Ext1,0.1.0", addins); Assert.Contains("SimpleApp.Ext2,0.1.0", addins); Assert.Contains("SimpleApp.Ext3,0.1.0", addins); Assert.Contains("SimpleApp.Ext4,0.1.0", addins); AddinEngine engine = new AddinEngine(); }
internal AddinExtension(AddinRecord addinRecord, AddinEngine addinEngine, DefaultAddinContext addinContext) { _addinRecord = addinRecord; _addinEngine = addinEngine; _addinContext = addinContext; }