ASP.NET Core:AddEnvironmentVariables不会加载变量

mtk*_*nko 3 c# environment-variables asp.net-core

我有一个asp.net core应用程序(.NET Core 2.1)。类中的ConfigureServices方法中有一个代码Startup

Configuration = new ConfigurationBuilder()
    .SetBasePath(_hostingEnvironment.ContentRootPath)
    .AddJsonFile("appsettings.json", false, true)
    .AddJsonFile($"appsettings.{_hostingEnvironment.EnvironmentName}.json", false, true)
    .AddEnvironmentVariables("MyApp:")
    .Build(); 
Run Code Online (Sandbox Code Playgroud)

另外,我设置系统环境变量MyApp:DumpFolder以覆盖中的DumpFolder设置appsettings.json。在这里,我面临着奇怪的行为:

  1. 如果我从运行应用程序visual studioF5 -它不能看到我的系统环境变量
  2. 如果我bin/Debug使用dotnet MyApp.dll- 从文件夹构建并运行它,它将正确加载变量。

我检查了asp.net core一下,发现它使用的Environment.GetEnvironmentVariables()方法默认情况下(未指定EnvironmentVariableTarget)从当前进程中检索变量。我不明白为什么从中运行应用程序时为什么不加载变量visual studio

3xG*_*Guy 11

我知道这有点晚了,但我的问题是我没有安装 Nuget Package Microsoft.Extensions.Configuration.EnvironmentVariables


Der*_*ğlu 8

重新启动Visual Studio。

您可能只是声明了环境变量,因此Visual Studio看不到它们。