将 appsettings.json 发布到不同的环境

jac*_*per 5 c# asp.net-core-mvc asp.net-core asp.net-core-cli

我有三个文件appsettings.json,这是我想存储“常规共享设置”的文件,然后我有appsettings.Development.jsonappsettings.Production.json.

当我从 Visual Studio 进行发布时,似乎只是appsettings.json复制而不是添加/合并,甚至只是发送部署文件夹的简单副本,对我而言,此任务应该合并到部署管道中。

问题是:我该怎么做?我错过了什么?难道这些行动不应该已经被纳入流程吗?

Vic*_*aci 5

确保您project.json将这些文件包含在要发布和/或复制到输出的文件列表中:

"buildOptions": {
  "copyToOutput": [
    ...
    "appsettings.json",
    "appsettings.*.json",
    ...
  ],
}
Run Code Online (Sandbox Code Playgroud)

或者

"publishOptions": {
  "include": [
    ...
    "appsettings.json",
    "appsettings.*.json",
    ...
  ]
}
Run Code Online (Sandbox Code Playgroud)

这些文件不会合并为一个文件。它们将在运行时由配置系统逻辑合并。