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}");
            }
        }
    }
}

按作用域获取环境变量

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);
        }
    }
}

临时设置环境变量


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);
        }
    }
}

永久设置环境变量

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

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);
            }
        }
    }
}

多环境配置

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;
            }
        }
    }
}

作者:spike

分类: Net

创作时间:2025-04-05

更新时间:2025-04-06

联系方式放在中括号之中例如[[email protected]],回复评论在开头加上标号例如:#1