.net - c# .net core 2.1 系统环境变量控制台应用程序未加载

标签 .net console-application .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。

最佳答案

您不应更改系统环境变量,您必须更改项目环境变量 通过右键单击项目并选择“属性”或只需打开 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"
      }
    }
  }
}

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

关于.net - c# .net core 2.1 系统环境变量控制台应用程序未加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52666775/

相关文章:

c# - 将 HTTPS 开发者证书保存到当前用户个人证书存储时出错

c# - 套接字连接在我读取数据之前重置

WCF 自托管服务 - C# 中的端点

c# - .net core 在 ValidationAttribute 中获取用户

c++ - WriteConsoleOutputCharacter 使控制台应用程序崩溃

c# - 如何确定控制台应用程序是否从控制台窗口内启动?

c# - 我可以获得指向 Span 的指针吗?

C# 窗口可见性、折叠和隐藏

c# - 好的 lambda 表达式或减少每个循环的更好方法

c# - 为什么 MS 工具生成的强类型数据集不关闭流?