编辑
2025-10-13
C#
00

目录

什么是环境变量?
读取环境变量
获取系统环境变量
按作用域获取环境变量
设置环境变量
临时设置环境变量
永久设置环境变量
实际应用场景
配置管理
多环境配置
注意事项
结论

什么是环境变量?

环境变量是操作系统中存储的动态值,可以被应用程序和系统进程使用。在C#中,我们可以通过多种方式读取、设置和管理环境变量。

读取环境变量

获取系统环境变量

C#
using System.Collections; namespace AppEnvironment { internal class Program { static void Main(string[] args) { // 获取特定的系统环境变量 string systemPath = Environment.GetEnvironmentVariable("PATH"); Console.WriteLine("系统PATH:" + systemPath); // 获取所有环境变量 foreach (DictionaryEntry env in Environment.GetEnvironmentVariables()) { Console.WriteLine($"{env.Key} = {env.Value}"); } } } }

image.png

按作用域获取环境变量

C#
using System.Collections; namespace AppEnvironment { internal class Program { static void Main(string[] args) { // 获取机器级环境变量 string machineVar = Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Machine); // 获取用户级环境变量 string userVar = Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.User); // 获取进程级环境变量 string processVar = Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Process); Console.WriteLine("Machine Variable: " + machineVar); Console.WriteLine("User Variable: " + userVar); Console.WriteLine("Process Variable: " + processVar); } } }

image.png

设置环境变量

临时设置环境变量

C#
using System.Collections; namespace AppEnvironment { internal class Program { static void Main(string[] args) { // 设置进程级环境变量(仅对当前进程有效) Environment.SetEnvironmentVariable("MY_APP_CONFIG", "Development"); // 读取刚设置的环境变量 string appConfig = Environment.GetEnvironmentVariable("MY_APP_CONFIG"); Console.WriteLine("应用配置:" + appConfig); } } }

image.png

永久设置环境变量

C#
using System.Collections; namespace AppEnvironment { internal class Program { static void Main(string[] args) { try { // 设置用户级环境变量 Environment.SetEnvironmentVariable( "DATABASE_CONNECTION", "Server=myServerAddress;Database=myDataBase;", EnvironmentVariableTarget.User ); // 设置机器级环境变量(需要管理员权限) Environment.SetEnvironmentVariable( "GLOBAL_APP_SETTING", "SomeGlobalValue", EnvironmentVariableTarget.Machine ); } catch (Exception ex) { Console.WriteLine("设置环境变量失败:" + ex.Message); } } } }

image.png

由于没给管理权限,下面的机器级环境变量会出错

实际应用场景

配置管理

C#
using System.Collections; namespace AppEnvironment { internal class Program { static void Main(string[] args) { // 从环境变量读取数据库连接字符串 string connectionString = Environment.GetEnvironmentVariable("DB_CONNECTION"); if (string.IsNullOrEmpty(connectionString)) { // 使用默认配置 connectionString = "DefaultConnectionString"; } Console.WriteLine("数据库连接:" + connectionString); } } }

多环境配置

C#
using System.Collections; namespace AppEnvironment { internal class Program { static void Main() { // 根据环境变量选择配置 string environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"; switch (environment) { case "Development": Console.WriteLine("开发环境配置"); break; case "Staging": Console.WriteLine("预发布环境配置"); break; case "Production": Console.WriteLine("生产环境配置"); break; } } } }

注意事项

  1. 环境变量是区分大小写的(Windows不区分,但Linux/macOS区分)
  2. 设置机器级和用户级环境变量需要相应权限
  3. 过多使用环境变量可能会降低代码可读性
  4. 敏感信息(如密码)不建议直接存储在环境变量中

结论

环境变量是C#开发中非常实用的配置管理工具,合理使用可以提高应用的灵活性和安全性。

本文作者:技术老小子

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!