Yee.Configuration 环境变量支持文档

概述

Yee.Configuration.Utility 类支持通过操作系统环境变量 APP_ENV 来动态指定应用配置环境,无需修改 Web.config 文件。

配置优先级

系统按以下顺序读取配置环境标识(ProductEnv):

  1. 操作系统环境变量 APP_ENV(最高优先级)
  2. Web.config 中的 appSettings["ProductEnv"]
  3. 默认值 "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+