Получить и установить переменные окружения на моно и возможные альтернативы - PullRequest
0 голосов
/ 26 ноября 2009

У меня есть небольшой c # dll, который реализует службу очереди сообщений, и в Windows он работает отлично. Чтобы найти все очереди, я использую переменную среды, сохраненную в машине во время установки.

System.Environment.SetEnvironmentVariable ("PHMQ", install_dir, EnvironmentVariableTarget.Machine);

Теперь я просто попытался запустить его на Mono, и когда программы запускаются, возникает исключение. Служба PHMQ не установлена.

После 2 часов поиска я обнаружил, что Mono на самом деле не хранит переменные такого рода, он просто отправляет их в null. (простой текстовый файл был слишком прост?)

Итак, вопрос: как я могу решить эту проблему? Первой идеей было: если запущено в linux, поместите его в определенную папку, например / opt, но это dll, если вы делаете это таким образом, любая программа, которая хочет его использовать, должна выполняться как root

Есть идеи?

1 Ответ

0 голосов
/ 30 ноября 2009

Ваша программа может добавить строку в / etc / environment, чтобы установить env var для машины. Очевидно, что для изменения этого файла вам потребуется root, так что это должно быть сделано в процессе установки.

Тем не менее, известное местоположение было бы лучше IMO. Я не понимаю, почему вы не сможете выполнить из /opt.

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