我创建了一个 .Net 6.0 控制台应用程序。我需要它能够使用实体框架迁移数据库。现在,当我运行它时,它说它的环境是“生产”。在哪里配置的?
这是应用程序的启动代码。
static void Main(string[] args)
{
using IHost host = Host.CreateDefaultBuilder(args)
.UseSerilog((context, loggerConfiguration) => loggerConfiguration
.ReadFrom.Configuration(context.Configuration)
.WriteTo.Console())
.ConfigureServices((context, services) =>
{
services.RegisterCoreServices(context.Configuration);
})
.Build();
CallBatch(host.Services, args);
host.RunAsync();
}
默认生产。
环境
为了确定运行时环境,ASP.NET Core 从以下环境变量中读取:
- DOTNET_环境
- 调用 WebApplication.CreateBuilder 方法时的 ASPNETCORE_ENVIRONMENT。默认的 ASP.NET Core Web 应用模板调用 WebApplication.CreateBuilder。 ASPNETCORE_ENVIRONMENT 值覆盖 DOTNET_ENVIRONMENT。
IHostEnvironment.EnvironmentName 可以设置为任意值,但框架提供了以下值:
- 开发:launchSettings.json 文件将 ASPNETCORE_ENVIRONMENT 设置为本地计算机上的开发。
- 分期
- Production:如果未设置 DOTNET_ENVIRONMENT 和 ASPNETCORE_ENVIRONMENT,则为默认值。