我正在使用 ASP.NET Core 7 创建一个应用程序。但我不明白为什么我无法从中获取值appsettings.json
?loggingEnv
由于某种原因空了。虽然文档说它appsettings.json
是从当前目录自动加载的。
appsettings.json
位于与 相同的目录中Program.cs
。我也尝试过将appsettings.json
其转移到/Properties
,但也没有帮助。
如果在运行代码时设置断点,它将builder.Environment.ContentRootPath
等于...ProjectFolder\bin\Debug\net7.0
,但应该是这样吗?难道不应该很简单吗...ProjectFolder
?
Program.cs
var builder = Host.CreateApplicationBuilder();
var loggingEnv = builder.Configuration.GetSection("Logging").GetChildren();
var app = builder.Build();
app.Run();
appsettings.json
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
},
"File": {
"Path": "Temp/app.log",
"Append": true,
"MinLevel": "Information",
"FileSizeLimitBytes": 0,
"MaxRollingFiles": 1
}
}
}
您可以使用(使用 Microsoft.Extensions.Configuration):
您还可以使用(使用 System.Text.Json.Serialization):
给出了 ASP.NET Core 和控制台应用程序的示例。
问题在
builder.Environment.ContentRootPath
. 他是...ProjectFolder\bin\Debug\net7.0
代替...ProjectFolder
。现在我只是这样设置目录:但奇怪的是为什么我必须这样做,因为还有另一个项目,其中一切都可以在没有这个的情况下工作(它的工作原理如问题中所示)。