public DefaultCompilerHost() { // The loader needs to live for the lifetime of the server. // // This means that if a request tries to use a set of binaries that are inconsistent with what // the server already has, then it will be rejected to try again on the client. // // We also check each set of extensions for missing depenencies individually, so that we can // consistently reject a request that doesn't specify everything it needs. Otherwise the request // could succeed sometimes if it relies on transient state. Loader = new DefaultExtensionAssemblyLoader(Path.Combine(Path.GetTempPath(), "Razor-Server")); }
public static int Main(string[] args) { DebugMode.HandleDebugSwitch(ref args); var cancel = new CancellationTokenSource(); Console.CancelKeyPress += (sender, e) => { cancel.Cancel(); }; // Prevent shadow copying. var loader = new DefaultExtensionAssemblyLoader(baseDirectory: null); var checker = new DefaultExtensionDependencyChecker(loader, Console.Error); var application = new Application(cancel.Token, loader, checker); return(application.Execute(args)); }
public static int Main(string[] args) { DebugMode.HandleDebugSwitch(ref args); var cancel = new CancellationTokenSource(); Console.CancelKeyPress += (sender, e) => { cancel.Cancel(); }; var outputWriter = new StringWriter(); var errorWriter = new StringWriter(); // Prevent shadow copying. var loader = new DefaultExtensionAssemblyLoader(baseDirectory: null); var checker = new DefaultExtensionDependencyChecker(loader, outputWriter, errorWriter); var application = new Application( cancel.Token, loader, checker, (path, properties) => MetadataReference.CreateFromFile(path, properties), outputWriter, errorWriter); var result = application.Execute(args); var output = outputWriter.ToString(); var error = errorWriter.ToString(); outputWriter.Dispose(); errorWriter.Dispose(); Console.Write(output); Console.Error.Write(error); // This will no-op if server logging is not enabled. ServerLogger.Log(output); ServerLogger.Log(error); return(result); }