如何在构建期间为appsettings.json文件中的键设置值

时间:2019-09-17 20:16:12

标签: asp.net asp.net-core

对于我的ASP.NET核心解决方案,我有一个appsettings.json文件,看起来像这样

{
  "Branch": {
    "Name": "test"
  },
}

如果我想将“ Branch.Name”的值替换为其他文本,例如在 build 时使用“ prod”。我该如何实现?

编辑:我知道.net核心的“ ASPNETCORE_ENVIRONMENT”环境变量和特定于环境的appsettings文件。但是不幸的是,由于某种原因难以解释,我仍然需要在构建时为“ appsettings.json”文件中的键设置值...

2 个答案:

答案 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的答案。