// Compile() is called by a background Thread in ProgressForm so be carful void ICompilableHelp.Compile(IProgressReporter progressReporter) //Called by Progress form { try { HxComp hxsCompiler = new HxComp(); hxsCompiler.Initialize(); CompMsg compMsg = new CompMsg(progressReporter, this.logFile); compMsg.Log("Date: " + DateTime.Today.ToShortDateString() + ", " + DateTime.Today.ToShortTimeString()); compMsg.Log("Log file: " + logFile); compMsg.Log("Project file: " + projectFile); compMsg.Log(""); int cookie = hxsCompiler.AdviseCompilerMessageCallback(compMsg); // Compile // hxsCompiler.Compile(projectFile, hxsDir, outputFile, 0); hxsCompiler.UnadviseCompilerMessageCallback(cookie); //Done - Break link with compMsg Obj compMsg.SaveLog(); hxsCompiler = null; //Show the log file if errors if (compMsg.ErrorCount > 0) //If nore Warnings { SafeShowCompileError(); } } catch (Exception ex) { throw ex; } }
void ICompilable.Compile(IProgressReporter progressReporter) { HxComp hxsCompiler = new HxComp(); hxsCompiler.Initialize(); //MSHelpCompilerError compilerError = new MSHelpCompilerError(); CompMsg compilerError; compilerError = new CompMsg(progressReporter); int i = hxsCompiler.AdviseCompilerMessageCallback(compilerError); hxsCompiler.Compile(projectFile, projectRoot, outputFile, 0); //if (compilerError.HxErrorType != MSHelpCompilerError.ErrorType.None) //{ // Console.WriteLine(compilerError.ShortErrorDescription); //} hxsCompiler.UnadviseCompilerMessageCallback(i); hxsCompiler = null; }
//Called by Progress form // Compile() is called by a background Thread in ProgressForm so be carful void ICompilableHelp.Compile(IProgressReporter progressReporter) { try { HxComp hxsCompiler = new HxComp(); hxsCompiler.Initialize(); CompMsg compMsg = new CompMsg(progressReporter, this.logFile); compMsg.Log("Date: " + DateTime.Today.ToShortDateString() + ", " + DateTime.Today.ToShortTimeString()); compMsg.Log("Log file: " + logFile); compMsg.Log("Project file: " + projectFile); compMsg.Log(""); int cookie = hxsCompiler.AdviseCompilerMessageCallback(compMsg); // Compile // hxsCompiler.Compile(projectFile, hxsDir, outputFile, 0); hxsCompiler.UnadviseCompilerMessageCallback(cookie); //Done - Break link with compMsg Obj compMsg.SaveLog(); hxsCompiler = null; //Show the log file if errors if (compMsg.ErrorCount > 0) //If nore Warnings { SafeShowCompileError(); } } catch (Exception ex) { throw ex; } }
protected override bool OnExecute(BuildContext context) { bool processResult = false; if (String.IsNullOrEmpty(this.Application) && String.IsNullOrEmpty(this.Arguments)) { if (String.IsNullOrEmpty(_projectFile) || File.Exists(_projectFile) == false) { return(processResult); } } BuildLogger logger = context.Logger; try { if (String.IsNullOrEmpty(_projectFile) || File.Exists(_projectFile) == false) { processResult = this.Run(logger); } else { HxComp hxsCompiler = new HxComp(); hxsCompiler.Initialize(); HxCompError compilerError = new HxCompError(logger, this.Verbosity); compilerError.Attach(hxsCompiler); hxsCompiler.Compile(_projectFile, Path.GetDirectoryName(_projectFile), null, 0); compilerError.Detach(hxsCompiler); hxsCompiler = null; processResult = compilerError.IsSuccess; } if (!processResult) { return(processResult); } } catch (ArgumentException) { // If the COM server compiler fails, run the command line version... processResult = this.Run(logger); if (!processResult) { return(processResult); } } catch (Exception ex) { if (logger != null) { logger.WriteLine(ex, BuildLoggerLevel.Error); } return(false); } // If the help is successfully compiled, then... // 1. Copy the compiled help files to the output folder... string workingDir = this.WorkingDirectory; if (!Directory.Exists(_helpDirectory)) { Directory.CreateDirectory(_helpDirectory); } // If we need to keep the help sources, then just copy everything to // the output folder... string helpOutput = Path.Combine(_helpDirectory, _helpFolder); if (_keepSources) { string compiledDir = Path.Combine(workingDir, _helpFolder); if (!Directory.Exists(compiledDir)) { return(processResult); } if (Directory.Exists(helpOutput)) { DirectoryUtils.DeleteDirectory(helpOutput, true); } Directory.Move(compiledDir, helpOutput); string destHelpPath = Path.Combine(helpOutput, _helpName + ".HxS"); context.AddOutput(BuildFormatType.HtmlHelp2, destHelpPath); } else //...otherwise, just copy the essentials... { if (!Directory.Exists(helpOutput)) { Directory.CreateDirectory(helpOutput); } string sourceHelpPath = Path.Combine(workingDir, String.Format(@"{0}\{1}.HxS", _helpFolder, _helpName)); string destHelpPath = Path.Combine(helpOutput, _helpName + ".HxS"); if (File.Exists(sourceHelpPath)) { File.Copy(sourceHelpPath, destHelpPath, true); File.SetAttributes(destHelpPath, FileAttributes.Normal); context.AddOutput(BuildFormatType.HtmlHelp2, destHelpPath); } // Copy the log file, if available... sourceHelpPath = Path.ChangeExtension(sourceHelpPath, ".log"); if (File.Exists(sourceHelpPath)) { destHelpPath = Path.ChangeExtension(destHelpPath, ".log"); File.Copy(sourceHelpPath, destHelpPath, true); File.SetAttributes(destHelpPath, FileAttributes.Normal); } // Copy the separated index file, if available... sourceHelpPath = Path.ChangeExtension(sourceHelpPath, ".HxI"); if (File.Exists(sourceHelpPath)) { destHelpPath = Path.ChangeExtension(destHelpPath, ".HxI"); File.Copy(sourceHelpPath, destHelpPath, true); File.SetAttributes(destHelpPath, FileAttributes.Normal); } } // 2. Create the help collection files for registration... processResult = CreateCollection(context); return(processResult); }