【问题标题】:c# .net core 2.1 system environment variable console application not loadingc# .net core 2.1 系统环境变量控制台应用程序未加载
【发布时间】:2018-10-05 13:30:12
【问题描述】:

我正在使用 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。

【问题讨论】:

  • 定义变量后是否重启了应用程序?
  • 你在哪里定义了一个变量?是否在 appsettings.json 上?系统环境和环境变量不一样,这是两个不同的东西。
  • @SiavashGhanbari,当我悬停配置对象时,它会显示系统环境变量列表。它只是没有显示我刚刚创建的那个。我什至可以修改现有的并且它可以工作,但它不会显示新创建的,即使在系统重新启动后也是如此。
  • 我在这里回复了答案:stackoverflow.com/a/52667992/1404642 如果您对此问题还有其他问题,请告诉我。
  • @omajid 是正确的。定义变量后只需要重新启动visual studio。

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


【解决方案1】:

您不应该更改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"
      }
    }
  }
}

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

【讨论】:

  • 不是我想要的。我的目标是将数据库连接字符串移动到环境变量中并从那里读取。我不希望用户必须处理 PROD 中的 .json 文件。我看到有人在使用它,但所有示例都停在 .AddEnvironmentVariables() 处。我没有看到任何关于如何添加新环境变量然后在控制台应用程序中使用的示例。希望这有助于理解我的问题。
  • 右键单击您的控制台应用程序项目并选择属性,然后选择调试 |并设置环境变量。
  • @Siavish,谢谢。我现在明白了。因此,在客户端计算机上,他们必须在那里添加一个环境变量以匹配我在“调试”部分中创建的名称。对吗?
猜你喜欢
  • 1970-01-01
  • 2021-01-29
  • 2020-09-04
  • 1970-01-01
  • 2019-03-25
  • 1970-01-01
  • 2021-12-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多