对于我的ASP.NET核心解决方案,我有一个appsettings.json文件,看起来像这样
{
"Branch": {
"Name": "test"
},
}
如果我想将“ Branch.Name”的值替换为其他文本,例如在 build 时使用“ prod”。我该如何实现?
编辑:我知道.net核心的“ ASPNETCORE_ENVIRONMENT”环境变量和特定于环境的appsettings文件。但是不幸的是,由于某种原因难以解释,我仍然需要在构建时为“ appsettings.json”文件中的键设置值...
答案 0 :(得分:2)
这不是ASP.NET Core中配置的工作方式。它可以在替代系统上使用,因此,您可以使用更突出的来源替代这些值,而不必直接更改值。
默认情况下,appsettings.json
实际上是优先级最低的配置源。可以使用所有特定于环境的JSON(例如,appsettings.Production.json
),环境变量和/或命令行参数来覆盖它。
出于此处的目的,您应该查看特定于环境的JSON和/或环境变量。例如,如果您创建一个包含以下内容的appsettings.Production.json
:
{
"Branch": {
"Name": "prod"
},
}
然后将您的部署环境设置为Production
(即ASPNETCORE_ENVIRONMENT
环境变量),那么Branch.Name
将是该环境中的prod
。同样,您可以将Branch:Name
环境变量设置为prod
,这也会覆盖该值。
答案 1 :(得分:0)
是的,没有内置的方法可以做到这一点。我最终通过使用jq解决了这个问题。阅读此question的答案。