gpt4 book ai didi

configuration - 如何根据 Net Core 3.1 中所选的构建配置合并 appsettings.json?

转载 作者:行者123 更新时间:2023-12-04 12:35:10 26 4
gpt4 key购买 nike

我在 Net Core 3.1 中有一个 Worker Service,它从 appsettings.json 读取生产设置。文件,并在开发期间(使用“调试”构建配置)覆盖 appsettings.json设置 appsettings.Development.json ,正如预期的那样。

我为我们的 QA 环境创建了一个构建配置和发布配置,我希望 appsettings.QA.json要与 appsettings.json 合并的文件在构建/发布时。但是发布项目只是复制appsettings.json使用生产设置而不与 aspsetting.QA.json 中的设置合并文件。

我怎样才能做到这一点?我不想复制 appsettings.QA.json到 QA 环境并设置 DOTNET_ENVIRONMENTQA .在这种情况下,我不想依赖环境变量。

最佳答案

.Net Core 不会将文件合并为物理文件。它们在您的 Program.cs 中使用此类代码块合并到内存中。

            Host.CreateDefaultBuilder(args)
.ConfigureAppConfiguration((hostingContext, config) =>
{
var env = hostingContext.HostingEnvironment;
config.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true)

config.AddEnvironmentVariables();
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
您需要做的就是设置环境变量 ASPNETCORE_ENVIRONMENT 并且 .net core 会自动处理它。

关于configuration - 如何根据 Net Core 3.1 中所选的构建配置合并 appsettings.json?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62453351/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com