C#设置环境变量

时间:2015-01-26 16:46:59

标签: c#

我正在尝试使用以下代码修改环境变量。

Environment.SetEnvironmentVariable("MyEnv", "True");

在下一行的同一个程序中,我试图重新审视它。

string myEnv=Environment.GetEnvironmentVariable("MyEnv");

但是我在环境变量中得到旧值而不是新值。 任何指向问题的指针都会有所帮助。 使用c#和.Net4.0

2 个答案:

答案 0 :(得分:1)

在重新启动托管进程之前,除非将EnvironmentVariableTarget设置为“Process”,否则它将不会识别新值:

Environment.SetEnvironmentVariable("MyEnv", "True",EnvironmentVariableTarget.Process);
string myEnv=Environment.GetEnvironmentVariable("MyEnv",EnvironmentVariableTarget.Process);

答案 1 :(得分:1)

存储此类环境变量时,只有在进程运行时才会存储它们。如果你关闭程序,变量就会消失。

    static void Main(string[] args)
    {
        string MyEnv = string.Empty;

        MyEnv = Environment.GetEnvironmentVariable("MyEnv");
        Console.WriteLine("MyEnv=" + MyEnv);

        MyEnv = "True";
        Environment.SetEnvironmentVariable("MyEnv", MyEnv);
        MyEnv = Environment.GetEnvironmentVariable("MyEnv");
        Console.WriteLine("MyEnv=" + MyEnv);

        MyEnv = "False";
        Environment.SetEnvironmentVariable("MyEnv", MyEnv);
        MyEnv = Environment.GetEnvironmentVariable("MyEnv");
        Console.WriteLine("MyEnv=" + MyEnv);

        Console.ReadLine();
    }

输出:

MyEnv=
MyEnv=True
MyEnv=False