c # .net core 2.1 системная переменная консольного приложения не загружается - PullRequest
0 голосов
/ 05 октября 2018

Я использую консольное приложение c # .net core 2.1.Я могу видеть предопределенные системные переменные среды, используя:

configuration.GetValue<string>("TMP") 

Однако, когда я создаю новую системную переменную, она не видна приложению.

Если я наведу курсор мыши на конфигурацию, я вижу JsonConfigurationProvider и EnvironmentVariablesConfigurationProvider, но созданного мной нет в списке.

Например, я создал новую переменную системной среды на моем компьютере с именем Database.Я полагаю, что я могу позвонить, используя конфигурацию. GetValue («База данных»)

Вот как я загружаю конфигурации.

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

Есть предположения?Помните, я использую консольное приложение, а не ASP.NET.

1 Ответ

0 голосов
/ 05 октября 2018

Вы не должны изменять System Environment Variable, вы должны изменить Project Environment Variable. Если щелкнуть правой кнопкой мыши проект и выбрать «Свойства», или просто открыть файл 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"
      }
    }
  }
}

И не забудьте перезапустить приложение, когда вы отредактировали или добавили переменную.

...