我正在尝试使用 .NET Framework 4.7.2 创建控制台应用程序。我看到项目中默认存在一个
app.config
文件。
App.config
用于存储项目的配置详细信息。只是想知道app.config
和appsettings.json
之间的区别
app.config 用于存储 .NET Framework 应用程序的配置详细信息,这是以 XML 格式存储配置数据的传统方法。然而,最近出现了使用 appsettings.json 文件而不是 app.config 在 .NET 应用程序中存储配置数据的趋势。
app.config 和 appsettings.json 之间的主要区别在于它们存储的数据的格式。 app.config 使用 XML 格式,而 appsettings.json 使用 JSON 格式。
另一个区别是 app.config 特定于 .NET Framework,而 appsettings.json 用于 .NET Core 应用程序。您还可以获得 web.config,它专门用于基于 .NET Framework Web 的应用程序。
在你的情况下,我会使用框架提供的内容并使用 app.config 文件。
以下是一些关键区别
“app.config”通常用于较旧的 .NET Framework 应用程序 - 采用 XML 格式,而“appsettings.json”用于 .NET Core 应用程序 - 采用 json 格式
从程序员的角度来看,区别还在于
app.config
XML 不是手动编辑的,而是使用名为 Settings
代码的类进行配置,该代码是通过打开 Settings.settings
文件通过 Visual Studio 中的 UI 进行配置的。
键值对立即作为属性添加到 Settings
类,并立即序列化为 XML,因此所有内容都会在编译时实时检查。有点类似于 Windows 窗体设计器的工作方式。
然后可以通过 Settings 类的公共属性在代码中访问键和值。
而 ASP.NET Core 中的
appsettings.json
是纯文本 (JSON) 文件,在编辑时没有任何内置验证。
这使得它更容易出现错误(拼写错误),并且配置文件与代码之间也存在分歧(没有没有公共属性的类,但是与 .NET Framework 中的 .GetSection(string)
相比,app.config
。
在统一代码以在天知道什么平台上运行时,这是一种耻辱,没有简单的方法来整理不同构建环境的设置!疯狂的 CD CI 什么时候这么基础了?