2015-07-14 3 views
1

Я использую переменную окружения в своей программе, и я устанавливаю значение переменной вне Visual Studio. Когда я пытаюсь выполнить приведенную ниже строку кода, он возвращает значение переменной, только если значение было установлено до открытия текущего экземпляра VS. Любые изменения, сделанные позже, не будут иметь никакого эффекта.Visual Studio не может распознать изменение переменной окружения

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

Чтобы получить новый набор значений, единственный выход - перезапустить VS. Похоже, что VS кэширует эти значения при запуске и, следовательно, не рассматривает никаких новых изменений. Однако, мой вопрос заключается в том, есть ли способ обновить текущий сеанс VS, чтобы я мог прочитать измененное значение переменной среды &, поэтому не нужно снова его перезапускать?

+3

Нет, нет. Каждое приложение запускается со своей собственной копии среды при запуске, и когда тогда запускается другой процесс, он получает только то, что имеет родитель. – crashmstr

+1

На пути обойти это можно было бы использовать файл конфигурации, запись в реестре или какой-либо другой источник, не относящийся к среде, который будет эффективен немедленно. – crashmstr

ответ

0

Это возможно с переменной среды для каждой машины. Изменения в них отражаются в текущем процессе.

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

Если, однако, возможно использование машинной переменной в зависимости от вашего сценария.

Смежные вопросы