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

Visual studio 2015 仅将特定于环境的appsettings.ENV.json发布到相应的环境,visual-studio-2015,asp.net-core,asp.net-core-mvc,asp.net-core-1.0,Visual Studio 2015,Asp.net Core,Asp.net Core Mvc,Asp.net Core 1.0,我的项目中有多个环境—一个开发环境、3个测试环境、1个集成环境和最终生产环境 因此,我们决定使用特定于环境的appsettings.ENVNAME.json 如中所述,我们关注的是project.json- "publishOptions": { "include": [ ... "appsettings.json", "appsettings.*.json", ... ] } 通过这样做,我们将appsetting.PROD.json发布到了不同的测试

我的项目中有多个环境—一个开发环境、3个测试环境、1个集成环境和最终生产环境

因此,我们决定使用特定于环境的appsettings.ENVNAME.json

如中所述,我们关注的是
project.json
-

"publishOptions": {
  "include": [
    ...
    "appsettings.json",
    "appsettings.*.json",
    ...
  ]
}
通过这样做,我们将appsetting.PROD.json发布到了不同的测试环境中,这是错误的

我知道,我们可以像这样在启动时控制appsettings文件的加载-

.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true);
但在这种情况下,也可以使用其他文件。(有人错误地更改了环境名称,它将开始获取其他环境的详细信息)

现在(根据我们的审计团队),我们需要只将特定于环境的appsettings.ENVNAME.json发布到相应的环境中

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

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


此外,用于生产的配置文件不会有太多更改,因此您可以在需要时轻松地手动修改它。最后,我只对每个环境使用一个
appsettings.json
。在我看来,这更安全,实际上更容易。

有人错误地更改了环境名称,它将开始获取其他环境的详细信息,这就像有人错误地发布了错误的appsettings.envname.json文件,它将开始获取其他环境的详细信息一样,两者都容易出现相同类型的手动错误。在您的示例中,您可以将环境文件设置为强制的,而不是可选的。如果有人将其更改为不存在的环境名称,则会发生错误。问题是,不是你的包应该决定哪一种是环境模式,而是你的服务器你要部署它一个即使我强制它,还有其他环境文件将是我的发布文件夹的一部分。审核小组不会批准此操作。在这里,我们的目的是根据环境名称自动化发布过程。您提到了如此严格的审核过程,而开发人员可以直接发布到登台和生产?为什么不将其发布到单独的位置,然后将所需的文件复制到所需的位置?