private async Task MainInternalAsync(string[] args) { _cmdOptions = CommandLineOptions.Parse(args, _console); var appdir = _cmdOptions.MainAppDirectory.Value(); var staticServe = _cmdOptions.StaticServe.Value(); var componentBuild = _cmdOptions.BuildComponent.Value(); var cleanTemp = _cmdOptions.CleanTemp.HasValue(); if (cleanTemp) { PathUtility.CleanTempDirectory(); } if (!string.IsNullOrEmpty(appdir)) { appdir = NormalizePath(appdir); if (Directory.Exists(appdir)) { _console.Out.WriteLine("Main application directory is: " + appdir); appdir = PathUtility.NormalizeRelavitePath(Directory.GetCurrentDirectory(), appdir); HostingHelper.MainAppDirectory = Path.GetFullPath(appdir); } } if (!string.IsNullOrEmpty(staticServe)) { staticServe = NormalizePath(staticServe); if (Directory.Exists(staticServe)) { _console.Out.WriteLine("Static files directory is: " + staticServe); HostingHelper.StaticServe = staticServe; } } if (!string.IsNullOrEmpty(componentBuild)) { componentBuild = NormalizePath(componentBuild); if (Directory.Exists(componentBuild)) { ComponentInfoBuilder.Build(_console, componentBuild); } else { _console.Out.WriteLine("=====Exiting: Build directory does not exist: " + componentBuild); } return; } _cmdOptions.App.ShowHelp(); _urls = new List <string>() { $"http://*:{HostingHelper.GetHostingPort()}" }; await Task.Run(() => { var contentRoot = Directory.GetCurrentDirectory(); #if RELEASE contentRoot = PathUtility.GetRootPath(true); #endif var hostBuilder = new WebHostBuilder() .UseKestrel(options => options.AddServerHeader = false) .UseContentRoot(contentRoot) .UseUrls(_urls.ToArray()) .ConfigureAppConfiguration((hostingContext, config) => { var env = hostingContext.HostingEnvironment; config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true); config.AddEnvironmentVariables(); }) .ConfigureLogging((webHostBuilderContext, logging) => { IConfiguration configuration = webHostBuilderContext.Configuration; ILoggingBuilder loggerBuilder = logging; loggerBuilder.AddConfiguration(configuration.GetSection("Logging")); loggerBuilder.AddConsole(); loggerBuilder.AddDebug(); }) .UseStartup <Startup>(); #if RELEASE hostBuilder.UseWebRoot(PathUtility.GetRootPath()); #endif bool serveStatic = !string.IsNullOrEmpty(HostingHelper.StaticServe); if (serveStatic) { hostBuilder.UseWebRoot(HostingHelper.StaticServe); } var host = hostBuilder.Build(); if (!serveStatic) { var applicationLifetime = host.Services.GetService <IApplicationLifetime>(); applicationLifetime.ApplicationStarted.Register(ApplicationStarted); } host.Run(); }); }