appsettings.json 和 runtimeconfig.json 有啥区别?

Posted

技术标签:

【中文标题】appsettings.json 和 runtimeconfig.json 有啥区别?【英文标题】:What is the difference between appsettings.json and runtimeconfig.json?appsettings.json 和 runtimeconfig.json 有什么区别? 【发布时间】:2022-01-12 01:55:40 【问题描述】:

这两个文件的用途是什么?

何时使用 appsettings.json?

何时使用 runtimeconfig.json?

【问题讨论】:

【参考方案1】:

appsettings.json 用于配置您的应用程序。您(或您的 IDE)创建此文件。您可以根据需要手动维护它。

runtimeconfig.json 是 .NET 运行时的内部配置,在需要运行您的应用程序时使用。通常,您不会触摸、编辑、维护甚至版本控制此文件。它是在构建您的应用程序时自动创建的。

这绝不是非此即彼的情况:您通常同时使用两者。 appsettings.json 显式/手动使用,而runtimeconfig.json 通常在后台使用,很少手动使用。

【讨论】:

此文档docs.microsoft.com/en-us/dotnet/core/run-time-config 指出 runtimeconfig.json 可用于在运行时配置 .NET 应用程序 的行为。而且还可以创建runtimeconfig.template.json,所有的配置都会放到runtimeconfig.json中。所以理论上我可以忘记appsettings.json并将所有配置放入runtimeconfig.template.json。如果有 appsettings.json,为什么会有这种可能性(我是关于 runtimeconfig.template.json)?【参考方案2】:

应用设置。 json 文件是一个应用程序配置文件,用于存储配置设置,例如数据库连接字符串等。这基本上是一个用于配置应用程序的配置文件。您可以在需要更改时手动编辑它。

运行时配置。构建应用程序时会在输出目录中自动生成 .json 文件。它基本上是 .Net 运行时的内部配置。无需手动对此文件进行任何更改或编辑,因为它是在应用程序的运行时自动生成的。

【讨论】:

以上是关于appsettings.json 和 runtimeconfig.json 有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

为asp.net核心中的开发和发布环境自动设置appsettings.json?

如何读取 appSettings.json 中的字符串数组?

ASP.NET CORE读取appsettings.json的配置

.NET Core 应用程序中的 appsettings.json 与 appsettings.Environment.json

用 appsettings.Production.json 中的设置覆盖 appsettings.json 中的数组设置

从appsettings.json读取entity.Framework的ConnectionString