簡體   English   中英

Mono C# 環境設置變量

[英]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

系統:

  • linux 2.6.38-8-通用 PAE
  • Mono JIT 編譯器版本 2.6.7 (Debian 2.6.7-5ubuntu3)

環境變量與進程的子進程共享。

如果您在進程中設置了一些環境變量,則只有從它啟動的進程才能看到它們,在您的進程終止后,它們將永遠消失。

您可能只想將它們設置在 shell 中。

您是否嘗試過使用 EnvironmentVariableTarget.Machine 運行它。 EnvironmentVariableTarget.Process 導致在進程終止時刪除條目。 .User 特定於運行進程的用戶。

您正在使用 sudo 運行應用程序,因此“sudo echo $Mono”將為您提供預期的結果,因為這是您在其下創建環境變量的用戶,而不是您的用戶(或者您不會使用 sudo)。

以任一方式刪除 EnvironmentVariableTarget.Process。 您正在尋找特定流程的外部訪問權限。 之后,執行以下操作之一:

  • 制作機器級環境變量。
  • 按照用戶的預期運行您的應用程序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM