Environment.SetEnvironmentVariable无法正常工作

时间:2015-08-21 14:41:55

标签: c#

我有一个简单的C#控制台应用程序来设置环境变量。有问题的一行是:

Environment.SetEnvironmentVariable("testvar", args[0]);

我已经检查过,而args [0]中有一个值。

当我从cmd提示符运行已编译的exe时,没有错误。

当我使用set testvar时,我收到一条错误消息,指出未定义环境变量。

默认情况下,SetEnvironmentVariable方法仅为进程设置它。所以我认为它只存在于exe的生命周期中。如果是这种情况,如何在cmd提示符的生命周期内设置它?

有什么想法吗?

我的目标是.NET 4

提出问题的另一种方式是:

如何让C#存储当前cmd提示符的值,该值可以在设置值的exe文件读取完毕后读取。在同一个用户名下进行多次登录,可能正在使用此项,因此将值存储在某处可能会与其他登录名冲突。

1 个答案:

答案 0 :(得分:2)

听起来你想要整个机器的环境变量,而不仅仅是这个过程。

Environment.SetEnvironmentVariable("testvar", args[0], EnvironmentVariableTarget.Machine);

不幸的是,您需要在更新环境变量之前重新启动流程。 C# set environment variable

最好将信息存储在注册表或文件中。这完全取决于您的应用程序能够使用的内容,但也可能是一种选择。