.net-core - aspnet 核心 appsettings.json 加载
问题描述
我有 ASP.NET Core (2.1) 项目,该项目具有appsettings.json
. 我用WebHost.CreateDefaultBuilder()
. 该appsettings.json
文件在文件属性中具有以下配置:
构建操作:内容
复制到输出目录:不要复制
在构建appsettings.json
结束后bin\Debug\netcoreapp2.1\MyProj.runtimeconfig.json
。ASP.NET Core 运行时可以很好地加载它。
我创建了 WebJobs(用于 .Net Core 2.1)并想做同样的事情 - 将 Build Action 设置为 Content 并让它加载。在Main()
Program.cs 我有类似的代码
var builder = new HostBuilder()
...
.ConfigureAppConfiguration(b =>
{
var environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT");
b.SetBasePath(Directory.GetCurrentDirectory());
b.AddJsonFile("appsettings.json", false, true);
b.AddJsonFile($"appsettings.{environment}.json", true, true);
b.AddEnvironmentVariables();
// Adding command line as a configuration source
if (args != null)
{
b.AddCommandLine(args);
}
}
但是运行时会尝试加载appsettings.json
(而不是MyWebJobProj.runtimeconfig.json
)。所以我不得不将 Build Action 设置为 None 并将 Copy to Output Directory 设置为 Always。但是,我更喜欢与 ASP.NET Core 中相同的方法——它以某种方式处理文件名转换。尽管 inWebHost.CreateDefaultBuilder()
与我的 WebJob 中的代码基本相同。配置中的神奇文件名转换是什么以及为什么它只适用于一种类型的项目?
解决方案
该文件[ProjName].runtimeconfig.json
的含义与appsettings.json
. 确保appsettings.json
已复制到输出(将“复制到输出”设置为“始终”或“更新”)。
推荐阅读
- python - ES中的总数
- reactjs - 在组件中提取列时,Ant 设计表无法正确呈现
- sql - 屏蔽具有多个要屏蔽的数据的字符串中的数据
- excel - 通过VBA对多个固定行进行最后一列排序
- python - Python 迭代排除类型不是 bool、float、int 或非 NoneType (TypeError: 'NoneType' object is not iterable)
- css - 在高度避免 Y 滚动条:100vh;分别 h屏;
- r - 在 ggplot 中使用 scale_x_date 设置 x 轴限制,缺少边界
- c# - C# 程序无法使用 NPOI 库写入 Excel 文件
- ruby-on-rails - 向我的控制器添加一个操作,它将列表作为 JSON 返回
- python - python - 如何将输入作为整数放入由python中的空格分隔的列表中?