IHostingEnvironment.EnvironmentName如何工作?

ser*_*0ne 8 development-environment production-environment visual-studio .net-core asp.net-core

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

IHostingEnvironment env = new HostingEnvironment();
Console.WriteLine(env.EnvironmentName);
Run Code Online (Sandbox Code Playgroud)

我得到了这个结果......

生产

但是当我在同一台机器上的ASP.NET Core应用程序中执行相同的操作时......

public Startup(IHostingEnvironment env)
{
    Debug.WriteLine(env.EnvironmentName);
}
Run Code Online (Sandbox Code Playgroud)

我得到了这个结果......

发展

  • EnvironmentName究竟是如何工作的?
  • 如何指定本地计算机是开发环境?
  • 如何指定Azure是生产环境?

作为额外的一点,可以将EnvironmentName配置为使用解决方案中的Debug和Release配置吗?

在此输入图像描述

  • Debug =>开发
  • 发布=>生产

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

Sha*_*tin 9

EnvironmentName工作究竟如何?

.NET Core 从环境变量中读取名称.

如何指定本地计算机是开发环境?

将环境变量设置为Development.

如何指定Azure是生产环境?

将环境变量设置为Production.

作为额外的一点,可以EnvironmentName配置为在解决方案中使用Debug和Release配置吗?

您可以创建启动配置文件来设置环境名称,并将该配置文件与Debug或Release配置一起使用.启动配置文件会影响EnvironmentName从Visual Studio启动的时间; 当您在其他环境中运行应用程序时,您将需要使用其他方法来设置它.

下图显示了在Release配置中运行应用程序以及设置EnvironmentName为的MyDevProfile Development.

在此输入图像描述