[英]Mono C# environment set variable
如何從我的應用程序中設置環境變量?
我不需要持久變量(重啟后可以丟棄)。 我只需要變量 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
沒有錯誤,但是在我的控制台應用程序“測試”退出后,我找不到$MONO
:
echo $MONO
set | grep MONO
系統:
環境變量與進程的子進程共享。
如果您在進程中設置了一些環境變量,則只有從它啟動的進程才能看到它們,在您的進程終止后,它們將永遠消失。
您可能只想將它們設置在 shell 中。
您是否嘗試過使用 EnvironmentVariableTarget.Machine 運行它。 EnvironmentVariableTarget.Process 導致在進程終止時刪除條目。 .User 特定於運行進程的用戶。
您正在使用 sudo 運行應用程序,因此“sudo echo $Mono”將為您提供預期的結果,因為這是您在其下創建環境變量的用戶,而不是您的用戶(或者您不會使用 sudo)。
以任一方式刪除 EnvironmentVariableTarget.Process。 您正在尋找特定流程的外部訪問權限。 之后,執行以下操作之一:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.