为什么环境变量不会改变?

时间:2015-09-18 12:33:04

标签: c# windows

我有Windows 7,我正在使用此代码:

        string genericLib = ConfigurationManager.AppSettings["GenericLib"];
        if (!string.IsNullOrEmpty(genericLib))
        {
            string path = Environment.GetEnvironmentVariable("Path");

            if (path != null && !path.Contains(genericLib))
            {
                path = genericLib + ";" + path;
                Environment.SetEnvironmentVariable("path", path);
            }

            string new_path = Environment.GetEnvironmentVariable("Path");
        }

调试器向我显示 new_path 变量确实包含我添加的新路径。但下次执行此代码时,添加的路径不再存在。

有人知道为什么会这样吗?

1 个答案:

答案 0 :(得分:1)

该方法的documentation表示(强调我的):

  

创建,修改或删除在当前流程中存储的环境变量

因此,您只是为流程更改环境变量。请改用this overload

Environment.SetEnvironmentVariable("path", path, EnvironmentVariableTarget.Machine);