.net core aspnet core appsettings.json加载
我有一个ASP.NET核心(2.1)项目,它有.net core aspnet core appsettings.json加载,.net-core,asp.net-core-2.1,appsettings,.net Core,Asp.net Core 2.1,Appsettings,我有一个ASP.NET核心(2.1)项目,它有appsettings.json。我使用WebHost.CreateDefaultBuilder()。appsettings.json文件在文件属性中具有以下配置: 构建操作:内容 复制到输出目录:不复制 生成后,appsettings.json在bin\Debug\netcoreapp2.1\MyProj.runtimeconfig.json中结束。 ASP.NET核心运行时可以很好地加载它 我创建了WebJobs(用于.NETCore2.1),并
appsettings.json
。我使用WebHost.CreateDefaultBuilder()
。appsettings.json
文件在文件属性中具有以下配置:
构建操作:内容复制到输出目录:不复制 生成后,
appsettings.json
在bin\Debug\netcoreapp2.1\MyProj.runtimeconfig.json
中结束。
ASP.NET核心运行时可以很好地加载它
我创建了WebJobs(用于.NETCore2.1),并希望执行相同的操作—将构建操作设置为内容并让其加载。在Program.cs的Main()
中,我有如下代码
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
)。所以我必须将buildaction设置为None,并将Copy to Output目录设置为Always。
不过,我更喜欢与ASP.NETCore中相同的方法—它以某种方式处理文件名转换。虽然在
WebHost.CreateDefaultBuilder()
中的代码与我在WebJob中的代码基本相同。魔法文件名转换在配置中起什么作用?为什么它只在一种类型的项目中起作用 文件[ProjName].runtimeconfig.json
的含义与appsettings.json
完全不同。确保已将appsettings.json
复制到输出(将“复制到输出”设置为“始终”或“更新”)