我正在尝试使用以下代码修改环境变量。
Environment.SetEnvironmentVariable("MyEnv", "True");
在下一行的同一个程序中,我试图重新审视它。
string myEnv=Environment.GetEnvironmentVariable("MyEnv");
但是我在环境变量中得到旧值而不是新值。 任何指向问题的指针都会有所帮助。 使用c#和.Net4.0
答案 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