首页 > 解决方案 > c# .net core 2.1 系统环境变量控制台应用程序未加载

问题描述

我正在使用 c# .net core 2.1 CONSOLE 应用程序。我可以使用以下方法查看预定义的系统环境变量:

configuration.GetValue<string>("TMP") 

但是,当我创建一个新的系统变量时,它对应用程序不可见。

如果我将鼠标悬停在配置上,我会看到 JsonConfigurationProvider 和 EnvironmentVariablesConfigurationProvider,但我创建的那些没有列出。

例如,我在我的机器上创建了一个名为 Database 的新系统环境变量。我想我可以调用的是使用 configuration.GetValue("Database")

这就是我加载配置的方式。

configuration = new ConfigurationBuilder()
                .SetBasePath(Directory.GetCurrentDirectory())
                .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                .AddEnvironmentVariables().Build();

有什么建议吗?请记住,我使用的是控制台应用程序而不是 ASP.NET。

标签: .netconsole-application.net-core-2.1

解决方案


您不应该更改System Environment Variable,您必须更改Project Environment Variable通过右键单击项目并选择 Properties 或只需打开 launchSettings.json,您将看到配置文件列表:

{
  ...
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "environmentVariables": {
         "ASPNETCORE_ENVIRONMENT": "Development"
      }
    },
    "WebApplication14": {
      "commandName": "Project",
      "launchBrowser": true,
      "launchUrl": "http://localhost:5000",
      "environmentVariables": {
        "ASPNETCORE_ENVIRONMENT": "Development"
      }
    }
  }
}

并且不要忘记在编辑或添加变量时重新启动应用程序。


推荐阅读