在 ASP.NET Core 6 中引入了 WebApplication.CreateBuilder ,请问如何继续使用 UseStartup<Startup>()
?
无论使用 builder.WebHost.UseStartup
ar builder = WebApplication.CreateBuilder(args);
builder.WebHost.UseStartup<Startup>();
var app = builder.Build();
app.Run();
还是使用 builder.Host.ConfigureWebHostDefaults
var builder = WebApplication.CreateBuilder(args);
builder.Host.ConfigureWebHostDefaults(_ => _.UseStartup<Startup>());
var app = builder.Build();
app.Run();
应用都无法正常启动
找到了一个有点啰嗦的解决方法
var builder = WebApplication.CreateBuilder(args);
var startup = new Startup(builder.Configuration);
startup.ConfigureServices(builder.Services);
var app = builder.Build();
startup.Configure(app, app.Environment);
app.Run();
我也想知道这个,有没有办法把VS2022新建Web应用模板改回原来的样子,看不到Main方法心慌。有Main方法就能明确知道程序从那儿开始那儿结束,看不到Main方法你需要很清楚影藏在背后的执行逻辑才行,版本更新这么频繁,前面的还没熟悉后面的版本又变了。
创建 .NET 5.0 项目然后把 TargetFramework
改为 net6.0,参考 Use the old program style in Visual Studio
WebApplication就是以干掉Startup类把代码挪到Main函数里为目标设计的。按照微软的说法这种方式覆盖98%的情况,如果确实遇到剩下的2%,那还是退回老模板的代码吧。
新代码连端点中间件都不用自己注册,直接就开始写端点配置,可想而知里面搞了多少名堂。