Yee.Configuration 环境变量支持文档
概述
Yee.Configuration.Utility 类支持通过操作系统环境变量 APP_ENV 来动态指定应用配置环境,无需修改 Web.config 文件。
配置优先级
系统按以下顺序读取配置环境标识(ProductEnv):
- 操作系统环境变量
APP_ENV(最高优先级) - Web.config 中的
appSettings["ProductEnv"] - 默认值
"default"(兜底)
使用方法
方式一:设置操作系统环境变量(推荐)
Windows PowerShell:
# 临时设置(仅当前会话)
$env:APP_ENV = "production"
# 永久设置(系统级)
[System.Environment]::SetEnvironmentVariable("APP_ENV", "production", "Machine")
# 永久设置(用户级)
[System.Environment]::SetEnvironmentVariable("APP_ENV", "production", "User")
Linux/Docker:
# 临时设置
export APP_ENV=production
# Docker 容器
docker run -e APP_ENV=production your-image
# docker-compose.yml
environment:
- APP_ENV=production
方式二:配置 Web.config
<configuration>
<appSettings>
<add key="ProductEnv" value="production" />
</appSettings>
</configuration>
配置路径映射
配置文件从以下路径读取:
- Windows:
C:\config\{ProductEnv}\ - Linux:
/config/{ProductEnv}/
示例:
APP_ENV=production→ 读取C:\config\production\APP_ENV=test→ 读取C:\config\test\- 未设置 → 读取
C:\config\default\
代码示例
using Yee.Configuration;
// 获取当前环境标识
string env = Utility.ProductEnv; // 返回 "production"、"test" 或 "default"
// 获取配置文件夹路径
string configPath = Utility.GetAppConfigFolderPath(); // 例如 "C:\config\production"
典型场景
| 场景 | 配置方式 | 优势 |
|---|---|---|
| 本地开发 | 不设置(使用 default) | 简单快速 |
| 测试环境 | APP_ENV=test |
无需修改配置文件 |
| 生产环境 | APP_ENV=production |
部署时一次性配置 |
| Docker 部署 | 环境变量注入 | 符合 12-Factor 最佳实践 |
注意事项
- 环境变量修改后需重启应用才能生效
- 配置目录(如
C:\config\production\)必须存在,否则抛出DirectoryNotFoundException - 建议在 CI/CD 流程中统一设置环境变量,避免手动修改配置文件
修改日期: 2024-11-24
适用版本: Yee.Configuration 1.0+