app.config 是 .NET Framework 项目中用于存储应用程序级配置的 XML 文件,以 configuration 为根节点,包含 appSettings、connectionStrings、startup 等内置节,并支持通过 configSections 声明和实现自定义节;编译后生成 [AppName].exe.config,不适用于 .NET Core/5+。

app.config 是 .NET Framework 项目(如 Windows Forms、WPF 或控制台应用)中用于存储应用程序级配置的 XML 文件,其结构有固定根元素和约定的节(section)组织方式。核心是 configuration 根节点,内部按功能划分多个预定义或自定义配置节。
基本 XML 结构框架
一个最小可用的 app.config 至少包含 <configuration> 根元素,并通常嵌套 <startup> 和 <appSettings> 等标准节:
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
</startup>
<appSettings>
<add key="ServerAddress" value="localhost:8080" />
<add key="LogLevel" value="Info" />
</appSettings>
</configuration>
常用内置配置节及其用途
以下节由 .NET 运行时或基础类库识别,需按规范使用:
-
<appSettings>:存放键值对形式的自定义设置,通过
ConfigurationManager.AppSettings["Key"]读取 -
<connectionStrings>:专用于数据库连接字符串,支持命名和提供程序名称,用
ConfigurationManager.ConnectionStrings["Name"]访问 - <startup>:指定应用应使用的 .NET 运行时版本(仅 Framework,.NET Core/5+ 不适用)
-
<runtime>:配置运行时行为,如绑定重定向(
<assemblyBinding>)、垃圾回收选项等
自定义配置节(需声明 + 实现)
若需结构化配置(如嵌套对象),不能直接写在 <appSettings> 中,而要:
- 在
<configuration>下添加<configSections>声明节类型 - 实现继承
ConfigurationSection的类来解析 XML 元素 - 在配置文件中定义对应节,例如:
<myCustomSection enabled="true">
<endpoints>
<add url="https://api.example.com" timeout="30" />
</endpoints>
</myCustomSection>
注意事项
app.config 在编译后会自动复制为 [AppName].exe.config 并放在输出目录;它不被 .NET Core 或 .NET 5+ 项目原生支持——这些平台使用 appsettings.json 及 IConfiguration 接口。若在新项目中看到 app.config,通常是兼容旧代码或特定场景(如某些第三方库要求)。










