我怎么能得到环境变量,如果有什么缺失,设置值?


当前回答

使用系统。环境类。

的方法

var value = System.Environment.GetEnvironmentVariable(variable [, Target])

and

System.Environment.SetEnvironmentVariable(variable, value [, Target])

会帮你的。

可选参数Target是一个EnvironmentVariableTarget类型的enum,它可以是Machine、Process或User之一。如果忽略它,默认目标是当前进程。

其他回答

获取和设置

Get

string getEnv = Environment.GetEnvironmentVariable("envVar");

Set

string setEnv = Environment.SetEnvironmentVariable("envvar", varEnv);

在Visual Studio 2019中-右键单击项目,选择属性>设置,通过给它一个名称(如ConnectionString)、类型和值来添加一个新变量。然后在你的代码中这样读:

var sConnectionStr = Properties.Settings.Default.ConnectionString;

这些变量将存储在配置文件(web。Config或app.config),这取决于你的项目类型。下面是它的一个例子:

  <applicationSettings>
    <Testing.Properties.Settings>
      <setting name="ConnectionString" serializeAs="String">
        <value>data source=blah-blah;etc-etc</value>
      </setting>
    </Testing.Properties.Settings>
  </applicationSettings>

这将适用于机器设置的环境变量。对于Users,只需更改为User即可。

String EnvironmentPath = System.Environment
                .GetEnvironmentVariable("Variable_Name", EnvironmentVariableTarget.Machine);
Environment.SetEnvironmentVariable("Variable name", value, EnvironmentVariableTarget.User);

环境变量也可以放在应用程序的app.config或web中。配置文件,由它们的名称以百分比(%)为界,然后在代码中展开。

请注意,当环境变量的值被更改(或设置了一个新值)时,Visual Studio应该关闭并重新打开。

例如,在app.config中:

<connectionStrings>
    <add name="myConnectionString" connectionString="%DEV_SQL_SERVER_CONNECTION_STRING%" providerName="System.Data.SqlClient" />
</connectionStrings>

然后在代码中:

string connectionStringEnv = ConfigurationManager.AppSettings["myConnectionString"];
string connectionString = System.Environment.ExpandEnvironmentVariables(connectionStringEnv);