.net - 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。
解决方案
您不应该更改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"
}
}
}
}
并且不要忘记在编辑或添加变量时重新启动应用程序。
推荐阅读
- java - 在Java中,我应该如何命令一个二维点沿着距离矢量线移动到另一个点?
- r - 从两个数据帧中采样相同数量的不平衡类
- apache-spark - 为什么 Spark Dstream 的 foreachRDD 在由于异常而停止之前会继续处理更多的微批处理?
- python - 主键和外键 Django Rest Framework 的嵌套 JSON 输出
- c# - 如何防止 C# WinForm listview 选择 Change when key is press and list view auto find next row on the based on the first column
- multithreading - 使用 .net 5 与任务(不是线程)的 TCP 连接
- python - 我如何制作 TinyDB 文件
- laravel - 我想使用 laravel 7 将多个图像下载为 zip 文件
- postgresql - 如何过滤具有特定时间的时间戳中的日期范围数据?
- postgresql - Flyway - Postgresql 分区表