コード例 #1
0
ファイル: AddinDatabase.cs プロジェクト: JohanLarsson/nunit
		public AddinDatabase (AddinEngine addinEngine, AddinRegistry registry)
		{
			this.addinEngine = addinEngine;
			this.registry = registry;
			addinDbDir = Path.Combine (registry.AddinCachePath, "addin-db-" + VersionTag);
			fileDatabase = new FileDatabase (AddinDbDir);
		}
コード例 #2
0
        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();
        }
コード例 #3
0
ファイル: MainForm.cs プロジェクト: bangush/JointCode.AddIns
        public MainForm()
        {
            InitializeComponent();

            txtInformation.Text = GetLoadedAssemblies();

            var adnOptions = AddinOptions.Create()
                             .WithMessageDialog(new MessageDialog())
                             .WithFileSettings(new AddinFileSettings());

            _addinEngine = new AddinEngine(adnOptions);
            _addinEngine.Start(true);

            RefreshInformationArea();
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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();
        }
コード例 #6
0
 internal AddinExtension(AddinRecord addinRecord, AddinEngine addinEngine, DefaultAddinContext addinContext)
 {
     _addinRecord  = addinRecord;
     _addinEngine  = addinEngine;
     _addinContext = addinContext;
 }