Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.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# Visual Studio无法识别环境变量中的更改_C#_Visual Studio_Environment Variables - Fatal编程技术网

C# Visual Studio无法识别环境变量中的更改

C# Visual Studio无法识别环境变量中的更改,c#,visual-studio,environment-variables,C#,Visual Studio,Environment Variables,我在程序中使用环境变量,并在Visual Studio外部设置变量值。当我尝试下面的代码行时,只有在打开VS的当前实例之前设置了变量值,它才会返回变量值。以后所做的任何更改都不会产生任何效果 var variableValue = Environment.GetEnvironmentVariable("Env_Var"); 要接收新的值集,唯一的出路是重新启动VS。 看起来VS在启动时缓存这些值,因此不考虑任何新的更改。但是,我的问题是,是否有任何方法刷新当前VS会话,以便我可以读取已更改的环

我在程序中使用环境变量,并在Visual Studio外部设置变量值。当我尝试下面的代码行时,只有在打开VS的当前实例之前设置了变量值,它才会返回变量值。以后所做的任何更改都不会产生任何效果

var variableValue = Environment.GetEnvironmentVariable("Env_Var");
要接收新的值集,唯一的出路是重新启动VS。
看起来VS在启动时缓存这些值,因此不考虑任何新的更改。但是,我的问题是,是否有任何方法刷新当前VS会话,以便我可以读取已更改的环境变量值&因此无需再次重新启动它?

可以使用每台机器的环境变量。对这些的更改将反映在正在运行的流程中

Environment.GetEnvironmentVariable("Env_Var", EnvironmentVariableTarget.Machine)

但是,使用机器范围内的变量是否可行取决于您的场景。

否,没有。每个应用程序在启动时都以自己的环境副本启动,然后启动另一个进程时,它只获取父进程拥有的内容。解决这一问题的方法是使用配置文件、注册表项或其他立即生效的非环境源。