在.NET Core控制台应用程序中,如果我添加以下行...
IHostingEnvironment env = new HostingEnvironment();
Console.WriteLine(env.EnvironmentName);
我得到了这个结果......
生产
但是当我在同一台机器上的ASP.NET Core应用程序中做同样的事情时......
public Startup(IHostingEnvironment env)
{
Debug.WriteLine(env.EnvironmentName);
}
我得到了这个结果......
开发
作为额外的一点,可以将EnvironmentName配置为使用解决方案中的调试和发布配置吗?
最终目标是在使用调试构建时连接到本地SQL数据库,使用发布构建时可以连接到Azure数据库。
答案 0 :(得分:7)
EnvironmentName
究竟是如何运作的?
.NET Core读取名称from an environmental variable。
如何指定本地计算机是开发环境?
将环境变量设置为Development
。
如何指定Azure是生产环境?
将环境变量设置为Production
。
作为额外的一点,可以
EnvironmentName
配置为使用解决方案中的调试和发布配置吗?
您可以创建启动配置文件来设置环境名称,并将该配置文件与调试或发布配置一起使用。从Visual Studio启动时,启动配置文件会影响EnvironmentName
;当您在其他环境中运行应用程序时,您将需要使用其他方法来设置它。
下图显示了在Release配置中运行应用程序以及将EnvironmentName
设置为Development
的MyDevProfile。