IHostingEnvironment.EnvironmentName 是如何工作的?

How does IHostingEnvironment.EnvironmentName work?

在 .NET Core 控制台应用程序中,如果我添加以下行...

IHostingEnvironment env = new HostingEnvironment();
Console.WriteLine(env.EnvironmentName);

我得到这个结果...

Production

但是当我在同一台机器上的 ASP.NET 核心应用程序中做同样的事情时...

public Startup(IHostingEnvironment env)
{
    Debug.WriteLine(env.EnvironmentName);
}

我得到这个结果...

Development


另外,EnvironmentName 是否可以配置为与解决方案中的 DebugRelease 配置一起使用?

最终目标是在使用 Debug 构建时能够连接到本地 SQL 数据库,在使用 构建时能够连接到 Azure 数据库发布.

How exactly does EnvironmentName work?

.NET Core 读取名称.

How can I specify that my local machine is a Development environment?

将环境变量设置为Development

How can I specify that Azure is a Production environment?

将环境变量设置为Production

As an extra point, can EnvironmentName be configured to work with Debug and Release configurations within the solution?

您可以创建一个设置环境名称的启动配置文件,并将该配置文件与调试或发布配置一起使用。当您从 Visual Studio 启动时,启动配置文件会影响 EnvironmentName; 运行 在其他环境下使用该应用程序时,您将需要使用其他方式进行设置。

下图显示了运行发布配置中的应用程序和将 EnvironmentName 设置为 Development 的 MyDevProfile。