| File: Server\Program.cs | Web Access |
| Project: src\aspnetcore\src\Components\WebAssembly\DevServer\src\Microsoft.AspNetCore.Components.WebAssembly.DevServer.csproj (blazor-devserver) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Linq; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; namespace Microsoft.AspNetCore.Components.WebAssembly.DevServer.Server; // This project is a CLI tool, so we don't expect anyone to reference it // as a runtime library. As such we consider it reasonable to mark the // following method as public purely so the E2E tests project can invoke it. /// <summary> /// Intended for framework test use only. /// </summary> public class Program { /// <summary> /// Intended for framework test use only. /// </summary> public static IHost BuildWebHost(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureHostConfiguration(config => { var applicationPath = args.SkipWhile(a => a != "--applicationpath").Skip(1).First(); var applicationDirectory = Path.GetDirectoryName(applicationPath)!; var name = Path.ChangeExtension(applicationPath, ".staticwebassets.runtime.json"); name = !File.Exists(name) ? Path.ChangeExtension(applicationPath, ".StaticWebAssets.xml") : name; var endpointsManifest = Path.ChangeExtension(applicationPath, ".staticwebassets.endpoints.json"); var inMemoryConfiguration = new Dictionary<string, string?> { [WebHostDefaults.EnvironmentKey] = "Development", ["Logging:LogLevel:Microsoft"] = "Warning", ["Logging:LogLevel:Microsoft.Hosting.Lifetime"] = "Information", [WebHostDefaults.StaticWebAssetsKey] = name, ["staticAssets"] = endpointsManifest, ["ApplyCopHeaders"] = args.Contains("--apply-cop-headers").ToString() }; config.AddInMemoryCollection(inMemoryConfiguration); config.AddJsonFile(Path.Combine(applicationDirectory, "blazor-devserversettings.json"), optional: true, reloadOnChange: true); }) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStaticWebAssets(); webBuilder.UseStartup<Startup>(); }).Build(); }