Mono C # переменная набора среды - PullRequest
4 голосов
/ 05 июня 2011

Как я могу установить переменную среды из моего приложения?

Мне не нужна постоянная переменная (ОК, чтобы отменить после перезагрузки).Мне просто нужна переменная MONO_RX, «выживающая» в конце моего приложения.


Environment.SetEnvironmentVariable( "MONO", txt, EnvironmentVariableTarget.User );
Environment.SetEnvironmentVariable( "MONO", txt, EnvironmentVariableTarget.Process );
Process.Start( "/bin/bash", "-c MONO=" + txt + "; export MONO; echo $MONO" );
Process.Start( "/bin/bash", "-c MONO=" + txt + "; export MONO; echo $MONO \r\n" );

sudo mono test.exe

не выдает ошибок, но после выхода из моего консольного приложения «test» я не нахожу$MONO:

echo $MONO

set | grep MONO

Система:

  • linux 2.6.38-8-универсальный PAE
  • Mono JIT-компилятор версии 2.6.7 (Debian 2.6.7-5ubuntu3)

Ответы [ 2 ]

1 голос
/ 03 октября 2016

Переменные Env совместно используются с дочерними элементами процесса.

Если вы установите в своем процессе какую-либо переменную env var, только процессы, запущенные из нее, увидят их, после завершения процесса они исчезнут навсегда.

Возможно, вы просто хотите установить их в оболочку.

0 голосов
/ 15 июня 2011

Вы пытались запустить это с EnvironmentVariableTarget.Machine.EnvironmentVariableTarget .Process приводит к удалению записи после завершения процесса..User является специфическим для пользователя, выполняющего процесс.

Вы используете sudo для запуска приложения, поэтому «sudo echo $ Mono» даст вам ожидаемый результат, потому что это пользователь, под которым вы создали переменную среды, а не пользователь (или вы неиспользовать sudo).

Удалите EnvironmentVariableTarget.Process в любом случае.Вы ищете доступ, внешний по отношению к вашему конкретному процессу.После этого выполните одно из следующих действий:

  • Создайте переменную среды уровня компьютера.
  • Запустите приложение в соответствии с ожиданиями пользователя
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...