Esempio n. 1
0
        private void Compile_Click(object sender, EventArgs e)
        {
            try
            {
                p_OpenFileDialog.FileName = String.Empty;
                //p_OpenFileDialog.InitialDirectory = Config.PluginPath;
                p_OpenFileDialog.Filter = "C# class files (*.cs)|*.cs";
                p_OpenFileDialog.Title  = "Compile and save plug-in (.cs->.dll)";

                if (p_OpenFileDialog.ShowDialog(this) == DialogResult.OK)
                {
                    var p_PluginEngine = new PluginEngine(p_OpenFileDialog.FileName, Config.MainForm);

                    if (
                        !p_PluginEngine.Compile(Path.GetDirectoryName(p_OpenFileDialog.FileName) + "\\" +
                                                Path.GetFileNameWithoutExtension(p_OpenFileDialog.FileName) + ".dll"))
                    {
                        foreach (string error in p_PluginEngine.Errors)
                        {
                            MessageBox.Show("Error compiling plug-in (" + p_PluginEngine.FileName + ")" +
                                            Environment.NewLine + Environment.NewLine + error);
                        }
                        return;
                    }
                }
            }
            catch (Exception ex)
            {
                MsgBox.ShowExceptionMessage(ex);
            }
        }
Esempio n. 2
0
        public void Run()
        {
            if (null != engine)
            {
                if (pluginFileInfo.Extension == ".cs" ||
                    pluginFileInfo.Extension == ".lm" ||
                    pluginFileInfo.Extension == ".dll")
                {
                    if (pluginFileInfo.Extension == ".cs" || pluginFileInfo.Extension == ".lm")
                    {
                        if (!engine.Compile(String.Empty))
                        {
                            foreach (string error in engine.Errors)
                            {
                                Config.ConsoleEx.WriteLine("Error compiling plug-in (" + engine.FileName + ")" +
                                                           Environment.NewLine + Environment.NewLine + error);
                            }
                            return;
                        }
                    }

                    if (!engine.Run())
                    {
                        foreach (string error in engine.Errors)
                        {
                            Config.ConsoleEx.WriteLine("Error running plug-in (" + engine.FileName + ")" +
                                                       Environment.NewLine + Environment.NewLine + error);
                        }
                    }
                    else
                    {
                        if (null == engines)
                        {
                            engines = new List <PluginEngine>();
                        }
                        Engines.Add(engine);
                    }
                }
            }
        }