当 运行 ASP.NET 5 个应用程序来自 Mac 上的命令行时,是否使用 launchSettings.json?

Is launchSettings.json used when running ASP.NET 5 apps from the command line on Mac?

我正在 Mac 上使用 Visual Studio 代码开发 ASP.NET 5 Web API 应用程序。我手动修改了 Properties/launchSettings.json 文件,使用 ASPNET_ENV 环境变量将所有配置文件的环境设置为 Staging

然而,当我运行dnx web在Mac终端启动应用程序时,我仍然得到Production环境:

如果我在 Mac 上使用 Visual Studio 代码,我可以使用 launchSettings.json 指定环境变量(以及环境类型)吗?或者它是特定于完整的 Visual Studio?

ASP.NET 5 个文档 suggest that launchSettings.json can be used to inject environment variables. However, 建议通过命令传递它们。

LaunchSettings.json 严格来说是一个 VS 概念。 在其他情况下,您将必须按照以下命令配置环境变量:

对于标准命令行 运行,使用:

set ASPNET_ENV=Development

dnx web

对于powershell,使用:

$env:ASPNET_ENV='Development'

dnx web

较短的版本: dnx web ASPNET_ENV=Development

添加到@Chrysalis 的回答中,您还可以通过在命令行上传递所需的变量来避免 "messing" 使用当前环境。

project.json 文件中,假设您有一个特定于开发环境的 web-dev 命令:

"commands": {
  "web-dev": "Microsoft.AspNet.Server.Kestrel 
    --ASPNET_ENV Development --Hosting:Environment Development 
    --config hosting.Development.json",
},

您可以在其中查看 ASPNET_ENVHosting:Environment 的设置方式,以及调用特定 hosting.json 配置的方式。
注意: 命令被分成几行只是为了便于阅读,在实际粘贴到 JSON 文件之前再次加入。

在 Mac 上,使用终端输入:

export ASPNETCORE_ENVIRONMENT=Development && dotnet run

要求: