ASP.NET Core中的Web.config转换等效于什么?

Jus*_*ius 6 publish configuration-files appsettings asp.net-core

ASP.NET Core文档建议我们应该使用appsettings.json文件以及每个环境的文件,其中应包含覆盖的值。问题是所有这些文件都已发布,尽管只有appsettings.json和appsettings。[Environment] .json是相关的。另一个问题是要更改服务器上的配置值,必须检查两个文件:基本文件和特定于环境的文件。

所以我的问题是:在每个部署环境中拥有一个配置文件的最干净方法是什么?

Chr*_*att 7

关键区别在于,没有像ASP.NET应用程序那样为特定配置部署ASP.NET Core应用程序。以前,例如,您实际上是将其发布为“发布”,并且,如果要切换部署配置,则必须重新发布。使用ASP.NET Core应用程序时,环境由ASPNETCORE_ENVIRONMENT环境变量或在执行过程中传递的环境确定。因此,部署所有可能的环境设置是完全有效的,因为可以随时更改环境。

也就是说,如果您确定自己永远不会更改环境,则只需删除appsettings.{environment}.json不需要的任何文件即可。此外,您不应真正覆盖man中的设置appsettings.json。如果特定于环境,则应放入特定于环境的JSON文件之一。您的主appsettings.json文件实际上应该只包含不受环境影响的全局设置。如果以这种方式处理它,则不必同时查看两者来查看设置的来源。

最后,如果您通常不喜欢这种方法,则可以简单地选择其他配置策略,例如环境变量或外部配置源(例如Azure Key Vault)。