.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# - 如果我在类 System.Windows.Forms.Timer 上两次调用 Start() 会发生什么?

c# - 使用 RelativeSource 和 AncestorType 的 WPF 数据绑定(bind)

c# - C#中变量/标识符前面的@是什么?

java - 如何从 Java 应用程序中与 C 控制台应用程序交互

java - 在java控制台应用程序中实现一个关键监听器

c# - 在 C# 控制台应用程序中访问数据库

Serilog JSON 配置 LoggingLevelSwitch 访问

c# - 无法连接到 Azure 服务总线队列

c# - 启动 IIS Express 时发生错误 - Visual Studio 2017

C# using关键字,正确使用