我有一个简单的C#控制台应用程序来设置环境变量。有问题的一行是:
Environment.SetEnvironmentVariable("testvar", args[0]);
我已经检查过,而args [0]中有一个值。
当我从cmd提示符运行已编译的exe时,没有错误。
当我使用set testvar
时,我收到一条错误消息,指出未定义环境变量。
默认情况下,SetEnvironmentVariable方法仅为进程设置它。所以我认为它只存在于exe的生命周期中。如果是这种情况,如何在cmd提示符的生命周期内设置它?
有什么想法吗?
我的目标是.NET 4
提出问题的另一种方式是:
如何让C#存储当前cmd提示符的值,该值可以在设置值的exe文件读取完毕后读取。在同一个用户名下进行多次登录,可能正在使用此项,因此将值存储在某处可能会与其他登录名冲突。
答案 0 :(得分:2)
听起来你想要整个机器的环境变量,而不仅仅是这个过程。
Environment.SetEnvironmentVariable("testvar", args[0], EnvironmentVariableTarget.Machine);
不幸的是,您需要在更新环境变量之前重新启动流程。 C# set environment variable
最好将信息存储在注册表或文件中。这完全取决于您的应用程序能够使用的内容,但也可能是一种选择。