Консольное приложение C# в Linux и переменная средыC#

Место общения программистов C#
Гость
Консольное приложение C# в Linux и переменная среды

Сообщение Гость »


У меня есть консольное приложение C#, которое я скомпилировал для Linux. Этому приложению требуется доступ к переменным среды. Я попытался настроить его с помощью EXPORT var1=value1 или установив его в /etc/environment. Я вижу, что эта переменная среды установлена ​​правильно, когда я выполняю printenv > но когда мое приложение не может получить доступ к этой переменной. Может ли кто-нибудь подсказать, как сделать так, чтобы мое приложение имело доступ к переменным среды? Я запускаю его на RHEL 8 и в своем приложении получаю доступ к переменной среды, используя Environment.GetEnvironmentVariable

Вот код, демонстрирующий это: Создан готовый рабочий процесс, как показано ниже:

защищенное переопределение асинхронной задачи ExecuteAsync (CancellationToken StoppingToken) { в то время как (!stoppingToken.IsCancellationRequested) { var env = Environment.GetEnvironmentVariable("HOMEBREW_PREFIX"); Console.WriteLine($"В рабочем процессе: {env}"); _logger.LogInformation("Работник работает в: {time}", DateTimeOffset.Now); await Task.Delay(1000, StopToken); } } Вот частичный вывод из printenv, который показывает, что переменная среды с именем HOMEBREW_PREFIX установлена ​​правильно.


Изображение


Вот скриншот точки останова и моего окна просмотра:


Изображение


Это на моем Mac, но, опять же, то же самое происходит и на моем компьютере с RHEL. Environment.GetEnvironmentVariable не может получить доступ к переменным среды

Вернуться в «C#»