.net core aspnet core appsettings.json加载

.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),并

我有一个ASP.NET核心(2.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
复制到输出(将“复制到输出”设置为“始终”或“更新”)