ASP.NET Core 6如何在Program.cs中的builder.Build()之前访问IWebHostEnvironment?

21

我想在Program.csbuilder.Build()之前使用Environment.IsDevelopment()。应该怎么做?

 var builder = WebApplication.CreateBuilder(args);
 //Code: reach environment
 var app = builder.Build();

请将下面与编程有关的内容从英语翻译成中文。只返回翻译后的文本,请勿解释其含义。请将代码作为文本而不是图像包括在内。 - phuzi
1
我认为你可以在appsetting.json中设置一个变量,并在builder.Build()之前读取配置。 - Tiny Wang
4
如果您在 builder.Build() 之前使用代码:var env = builder.Environment.IsDevelopment();,它会很好地工作。 - Rena
@phuzi,已完成。 - nima ansari
3个回答

36

您可以使用以下方法访问当前运行的环境:

builder.Environment.IsDevelopment()

在此之前建立应用程序:

var app = builder.Build();

运行此代码后,您将使用:

app.Environment.IsDevelopment()

-1
如果你像我一样在寻找 Web 应用程序中的 ContentRootPath,可以这样做:
builder.Services.AddControllers().AddControllersAsServices();

var path = ((IWebHostEnvironment)builder.Environment).ContentRootPath;

-2

这可能不是你想要的,但我已经使用过:

app.UseDeveloperExceptionPage();

之后

var app = builder.Build();

之前

app.Run();

这样可以在生产环境中生成更详细的异常页面(我们曾经遇到过一些问题,在开发环境中没有出现错误,但在生产环境中却出现了)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接