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); } }
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); } } } }