Переменные среды извлекаются с помощью System.Environment.GetEnvironmentVariable("VAR_NAME")
Чтение переменной среды при отладке в MonoDevelop
Использование export VAR_NAME=123
в Баш не работает (выше команда возвращает нулевое значение). Установка System.EnvironmentVariableTarget для пользователя, машины или процесса не работает.
Ввод сценария оболочки в /etc/profile.d/settings.sh с export VAR_NAME=123
требует перезапуска, что неприемлемо. Я не смог найти способ загрузить изменения без перезагрузки. Использование source /etc/profile.d/settings.sh
не работает. Я также не тестировал, действительно ли он работает после перезагрузки, потому что я не буду перезагружаться.
Экспорт переменной через MonoDevelop работает, но не является вариантом, поскольку настройки используются в проектах. Я не могу установить переменные среды для решения.
Должны быть лучшие способы. Любые подсказки?
Редактировать 1: Получил это при запуске приложения внутри bash. Теперь я не могу отлаживать что-либо в MonoDevelop, поэтому я хотел бы найти способ для MonoDevelop включать требуемые переменные, не устанавливая их в каждом проекте.
Редактировать 2: Получил довольно близко в MonoDevelop, перейдя в Run -> Run With -> Custom Parameters
и добавив переменные окружения. Тем не менее, они еще не применяются при отладке.
Edit3: Использование Run With -> Custom Parameters - это тупик, поскольку он не поддерживает запуск нескольких проектов в MonoDevelop. Он просто не позволит добавлять какие-либо пользовательские параметры, если есть несколько проектов запуска.
Может быть, создать сценарий .sh, который экспортирует переменные и запускает моно исполняемый файл? – Gusman
Я хотел иметь возможность использовать отладку в MonoDevelop. См. Мой ответ ниже. –