Пример #1
0
 private void directoryWithXRulesDatabase__onDirectoryClick(string fileOrDir)
 {
     if (cbShowCodeDependencies.Checked)
     {
         CompileEngine_WinForms.addExtraFileReferencesToSelectedNode(directoryWithXRulesDatabase.getTreeView(), fileOrDir);
     }
 }
Пример #2
0
        //public ascx_ScriptsFolder scriptsFolder;

/*        public void addCurrentAppDomainsDllsAsReferences()
 *      {
 *          foreach(var assembly in AppDomain.CurrentDomain.GetAssemblies())
 *          {
 *              var assemblyName = Path.GetFileName(assembly.Location);
 *              if (false == lsExtraReferenceAssembliesToAdd.Contains(assemblyName))
 *                  if (assemblyName.IndexOf("JetBrains")==-1 &&
 *                      assemblyName.IndexOf("VisualStudio") == -1 &&
 *                      assemblyName.IndexOf("SMDiagnostics") == -1) // don't add these assemblies
 *                      lsExtraReferenceAssembliesToAdd.Add(assemblyName);
 *
 *          }
 *      }*/


        public void compileSourceCode()
        {
            if (sourceCodeEditor.partialFileViewMode == false)
            {
                if (this.okThread(delegate { compileSourceCode(); }))
                {
                    var      lsExtraReferencesToAdd = new List <string>(); //lsExtraReferenceAssembliesToAdd.ToArray());
                    String   sErrorMessages         = "";
                    var      compileEngine          = new CompileEngine();
                    Assembly aCompiledAssembly      = null;
                    if (tbExtraReferencesToAdd.Text != "")
                    {
                        lsExtraReferencesToAdd.AddRange(tbExtraReferencesToAdd.Text.Split(new[] { Environment.NewLine },
                                                                                          StringSplitOptions.
                                                                                          RemoveEmptyEntries));
                    }

                    lbSourceCode_CompilationResult.Items.Clear();
                    var exeMainClass       = (rbCreateExe.Checked) ? tbMainClass.Text : "";
                    var outputAssemblyName = ""; // todo expose outputAssemblyName on GUI

                    //DI.config.addPathToCurrentExecutableEnvironmentPathVariable(DI.config.O2TempDir);

                    sourceCodeEditor.saveSourceCode();
                    var filesToCompile = new List <String>().add(sourceCodeEditor.sPathToFileLoaded);
                    if (compileEngine.compileSourceFiles(filesToCompile, lsExtraReferencesToAdd.ToArray(),
                                                         ref aCompiledAssembly, ref sErrorMessages, false /*verbose*/,
                                                         exeMainClass,
                                                         outputAssemblyName))
                    {
                        // if we only have 1 class in the completed code, set tbMainClass.Text to it
                        if (aCompiledAssembly.GetTypes().Length == 1)
                        {
                            tbMainClass.Text = aCompiledAssembly.GetTypes()[0].FullName;
                        }
                        lbSourceCode_CompilationResult.ForeColor = Color.Black;
                        lbSourceCode_CompilationResult.Items.Add("No errors");
                        O2Messages.dotNetAssemblyAvailable(aCompiledAssembly.Location);
                        //if (assemblyInvoke != null)
                        //    assemblyInvoke.loadAssembly(aCompiledAssembly, cbAutoExecuteOnMethodCompile.Checked);
                    }
                    else
                    {
                        //assemblyInvoke.setControlsEnableState(false);
                        lbSourceCode_CompilationResult.ForeColor = Color.Red;
                        CompileEngine_WinForms.addErrorsListToListBox(sErrorMessages, lbSourceCode_CompilationResult);
                    }
                    if (cbAutoSaveOnCompile.Checked)
                    {
                        sourceCodeEditor.saveSourceCode();
                    }
                }
            }
        }
 public void showDetailsOfLoadedAssembly(bool _autoExecuteLastMethod)
 {
     if (compiledAssembly != null)
     {
         this.invokeOnThread(
             () =>
             //if (ExtensionMethods.okThread((Control) this, delegate { showDetailsOfLoadedAssembly(_autoExecuteLastMethod); }))
         {
             killThreadUsedToPopulateTargetList();
             PublicDI.log.info("Loading assembly:{0}", compiledAssembly.Location);
             autoExecuteLastMethod          = _autoExecuteLastMethod;
             threadUsedToPopulateTargetList =
                 CompileEngine_WinForms.loadAssesmblyDataIntoTreeView(compiledAssembly,
                                                                      tvSourceCode_CompiledAssembly,
                                                                      lbLastMethodExecuted,
                                                                      onlyShowStaticMethods);
             checkAutoExecutionOfLastInvokedMethod();
             tvSourceCode_CompiledAssembly.Enabled  = true;
             btExecuteAssemblyUnderDebug.Enabled    = compiledAssembly.EntryPoint != null;
             btExecuteMethodWithoutDebugger.Enabled = false;
             btDebugMethod.Enabled = false;
         });
     }
 }