我怎么能得到环境变量,如果有什么缺失,设置值?
当前回答
我可以使用以下命令来更新环境变量
string EnvPath = System.Environment.GetEnvironmentVariable("PATH", EnvironmentVariableTarget.Machine) ?? string.Empty;
if (!string.IsNullOrEmpty(EnvPath) && !EnvPath .EndsWith(";"))
EnvPath = EnvPath + ';';
EnvPath = EnvPath + @"C:\Test";
Environment.SetEnvironmentVariable("PATH", EnvPath , EnvironmentVariableTarget.Machine);
其他回答
获取和设置
Get
string getEnv = Environment.GetEnvironmentVariable("envVar");
Set
string setEnv = Environment.SetEnvironmentVariable("envvar", varEnv);
环境变量也可以放在应用程序的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);
Environment.SetEnvironmentVariable("Variable name", value, EnvironmentVariableTarget.User);
这将适用于机器设置的环境变量。对于Users,只需更改为User即可。
String EnvironmentPath = System.Environment
.GetEnvironmentVariable("Variable_Name", EnvironmentVariableTarget.Machine);
如果读取环境变量的目的是重写appset中的值。json或任何其他配置文件,您可以通过environmentvariableextensions存档它。
var builder = new ConfigurationBuilder()
.AddJsonFile("appSettings.json")
.AddEnvironmentVariables(prefix: "ABC_")
var config = builder.Build();
根据这个例子,环境的Url是从appsettings.json中读取的。但是当AddEnvironmentVariables(前缀:“ABC_”)行被添加到ConfigurationBuilder时,值appsettings。Json将在环境变量值中被重写。
推荐文章
- 如何在POM.xml中引用环境变量?
- 防止在ASP中缓存。NET MVC中使用属性的特定操作
- 转换为值类型'Int32'失败,因为物化值为空
- c#中有任何连接字符串解析器吗?
- 在Linq中转换int到字符串到实体的问题
- 是否可以动态编译和执行c#代码片段?
- 创建自定义MSBuild任务时,如何从c#代码获取当前项目目录?
- MSBuild路径
- c#和Java的主要区别是什么?
- 在c#中创建一个特定时区的DateTime
- .NET中的属性是什么?
- csproj文件中的“Service Include”是干什么用的?
- 如何使用try catch进行异常处理是最佳实践
- 替换字符串中第一次出现的模式
- .NET中字节的字面后缀?