【问题标题】:Visual Studio cannot recognize a change in environment variableVisual Studio 无法识别环境变量的更改
【发布时间】:2015-10-03 03:54:18
【问题描述】:

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

var variableValue = Environment.GetEnvironmentVariable("Env_Var");

要接收新的值集,唯一的出路是重启VS。 看起来 VS 在启动时缓存了这些值,因此不考虑任何新的变化。但是,我的问题是是否有任何方法可以刷新当前的 VS 会话,以便我可以读取更改后的环境变量值,因此无需继续重新启动它?

【问题讨论】:

  • 不,没有。每个应用程序在启动时都从它们自己的环境副本开始,然后当它启动另一个进程时,它只获得父进程所拥有的。
  • 解决此问题的方法是使用配置文件、注册表项或其他一些会立即生效的非基于环境的源。

标签: c# visual-studio environment-variables


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多