我有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 变量确实包含我添加的新路径。但下次执行此代码时,添加的路径不再存在。
有人知道为什么会这样吗?
答案 0 :(得分:1)
该方法的documentation表示(强调我的):
创建,修改或删除在当前流程中存储的环境变量。
因此,您只是为流程更改环境变量。请改用this overload:
Environment.SetEnvironmentVariable("path", path, EnvironmentVariableTarget.Machine);