【发布时间】:2015-10-03 03:54:18
【问题描述】:
我在我的程序中使用了一个环境变量,并且我在 Visual Studio 之外设置了变量值。当我尝试下面的代码行时,只有在打开当前的 VS 实例之前设置了值,它才会返回变量值。以后所做的任何更改都不会产生任何影响。
var variableValue = Environment.GetEnvironmentVariable("Env_Var");
要接收新的值集,唯一的出路是重启VS。 看起来 VS 在启动时缓存了这些值,因此不考虑任何新的变化。但是,我的问题是是否有任何方法可以刷新当前的 VS 会话,以便我可以读取更改后的环境变量值,因此无需继续重新启动它?
【问题讨论】:
-
不,没有。每个应用程序在启动时都从它们自己的环境副本开始,然后当它启动另一个进程时,它只获得父进程所拥有的。
-
解决此问题的方法是使用配置文件、注册表项或其他一些会立即生效的非基于环境的源。
标签: c# visual-studio environment-variables