仅将环境特定的appsettings.ENV.json发布到相应的环境

时间:2017-02-19 15:31:55

标签: visual-studio-2015 asp.net-core asp.net-core-mvc asp.net-core-1.0

我的项目中有多个环境 - 一个开发,三个测试环境,一个集成环境和最终生产环境。

因此,我们决定选择环境特定的appsettings.ENVNAME.json

this answer中所述,我们关注project.json -

"publishOptions": {
  "include": [
    ...
    "appsettings.json",
    "appsettings.*.json",
    ...
  ]
}

通过这样做,我们甚至在不同的测试环境中发布了appsetting.PROD.json,这是错误的。

据我所知,我们可以在启动时控制appsettings文件的加载 -

.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);

但在这种情况下,其他文件也可用。 (有人错误地更改了env名称,它将开始获取其他环境的详细信息)

现在(根据我们的审核小组),我们需要将特定于环境的 appsettings.ENVNAME.json 发布到相应的环境。

如何使用project.json实现这一目标?我们需要为此编写单独的脚本吗?解决这种情况的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

出于安全原因(有意或有误),我(个人)避免将存档/生产配置文件包含在存储库或用于开发的计算机上。这些文件可能包含敏感信息,正如您所说,如果使用或修改了错误的配置文件,可能会出现重大错误。

此外,用于生产的配置文件不会改变太多,因此您可以在需要时手动修改它。总而言之,我每个环境只使用一个appsettings.json。在我看来,它更安全,更容易。