Visual Studio 无法识别环境变量的更改
Posted
技术标签:
【中文标题】Visual Studio 无法识别环境变量的更改【英文标题】:Visual Studio cannot recognize a change in environment variable 【发布时间】:2015-10-03 03:54:18 【问题描述】:我在我的程序中使用了一个环境变量,并且我在 Visual Studio 之外设置了变量值。当我尝试下面的代码行时,只有在打开当前的 VS 实例之前设置了值,它才会返回变量值。以后所做的任何更改都不会产生任何影响。
var variableValue = Environment.GetEnvironmentVariable("Env_Var");
要接收新的值集,唯一的出路是重启VS。 看起来 VS 在启动时缓存了这些值,因此不考虑任何新的变化。但是,我的问题是是否有任何方法可以刷新当前的 VS 会话,以便我可以读取更改后的环境变量值,因此无需继续重新启动它?
【问题讨论】:
不,没有。每个应用程序在启动时都从它们自己的环境副本开始,然后当它启动另一个进程时,它只获得父进程所拥有的。 解决此问题的方法是使用配置文件、注册表项或其他一些会立即生效的非基于环境的源。 【参考方案1】:可以使用每台机器的环境变量。对这些的更改会反映在正在运行的进程中。
Environment.GetEnvironmentVariable("Env_Var", EnvironmentVariableTarget.Machine)
但是,是否可以使用机器范围的变量取决于您的场景。
【讨论】:
以上是关于Visual Studio 无法识别环境变量的更改的主要内容,如果未能解决你的问题,请参考以下文章
如果 Visual Studio 项目的设置取决于更改的环境变量,则不会自动重建 Visual Studio 项目
是啥导致 MS Visual Studio 无法识别构建错误?