Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Environment.SetEnvironmentVariable不工作_C# - Fatal编程技术网

C# Environment.SetEnvironmentVariable不工作

C# Environment.SetEnvironmentVariable不工作,c#,C#,我有一个简单的C#控制台应用程序,可以设置一个环境变量。这条线是: Environment.SetEnvironmentVariable("testvar", args[0]); 我已检查,args[0]中有一个值 当我从cmd提示符运行编译的exe时,没有错误 然后,当我使用settestvar时,我得到一个错误,指出环境变量未定义 默认情况下,SetEnvironmentVariable方法仅为流程设置它。所以我认为它只存在于exe的生命周期中。如果是这种情况,如何设置cmd提示符的生存时

我有一个简单的C#控制台应用程序,可以设置一个环境变量。这条线是:

Environment.SetEnvironmentVariable("testvar", args[0]);
我已检查,args[0]中有一个值

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

然后,当我使用
settestvar
时,我得到一个错误,指出环境变量未定义

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

有什么想法吗

我的目标是.NET4

问我问题的另一种方式是:


如何让C#为当前cmd提示符存储一个值,该值可以在设置该值的exe文件完成后读取。同一用户名下的多个登录可能正在使用此用户名,因此将值存储在某个位置可能与另一个登录冲突。

听起来您希望整个计算机使用环境变量,而不仅仅是此过程

Environment.SetEnvironmentVariable("testvar", args[0], EnvironmentVariableTarget.Machine);
不幸的是,您需要在更新环境变量之前重新启动流程。


最好将信息存储在注册表或文件中。这取决于您的应用程序能够使用什么,但这也可能是一个选项。

听起来您希望整个机器使用环境变量,而不仅仅是这个过程

Environment.SetEnvironmentVariable("testvar", args[0], EnvironmentVariableTarget.Machine);
不幸的是,您需要在更新环境变量之前重新启动流程。


最好将信息存储在注册表或文件中。这取决于您的应用程序能够使用什么,但这也可能是一个选项。

阅读MSDN上的文档:特别是:“创建、修改或删除存储在当前进程中的环境变量。”请参阅此重载:有关操作系统的设置。我已尝试EnvironmentVariableTarget.User,并且它具有相同的效果注销和重新登录,您将看到效果。不,没有比这更好的了。请阅读MSDN上的文档:特别是:“创建、修改或删除存储在当前进程中的环境变量”。请参阅此重载:了解操作系统的设置。我尝试了EnvironmentVariableTarget。用户和它具有相同的效果注销和重新登录,您将看到效果。不,没有比这更好的了。