.NET Core 环境变量返回 null

Tho*_*mas 9 c# configuration .net-core .net-core-configuration

我有一个 .NET Core 控制台应用程序。我正在尝试使用以下代码检索环境变量。

var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
Run Code Online (Sandbox Code Playgroud)

但是,变量“environment”始终返回 null。我通过设置环境变量“ASPNETCORE_ENVIRONMENT”

控制面板 -> 系统属性 -> 环境变量 -> 系统变量

我也尝试使用命令设置环境变量set ASPNETCORE_ENVIRONMENT=development,但这也不起作用。当我F5在 Visual Studio 中调试代码 ( ) 时,该变量始终返回 null。我已经确保在我设置变量的地方或在我阅读它的代码中没有任何空格。有什么我想念的吗?

Pau*_*ica 14

我认为设置环境变量只有在您通过dotnet run以下方式启动控制台应用程序时才有效:

当ASPNETCORE_ENVIRONMENT环境变量被全局设置时,它对设置该值后打开的任何命令窗口中的dotnet运行生效。

来自:在 ASP.NET Core 中使用多个环境


尝试将其设置为您的 Debug 属性。

在 Visual Studio 中右键单击您的项目,然后选择Properties → Debug。

设置环境变量,如下图所示。

在此处输入图片说明

  • 我认为这仅适用于使用“dotnet run”启动的应用程序,而不是使用 Visual Studio 启动的应用程序。从文档“当全局设置 ASPNETCORE_ENVIRONMENT 环境变量时,它对设置该值后打开的任何命令窗口中的 dotnet run 生效”。 (2认同)

小智 12

即使您使用 Visual Studio 启动应用程序,它对我来说也工作得很好。您只需记住,在更新环境变量后应重新启动 VS(它们不会即时更新)。