我怎么能得到环境变量,如果有什么缺失,设置值?
当前回答
获取和设置
Get
string getEnv = Environment.GetEnvironmentVariable("envVar");
Set
string setEnv = Environment.SetEnvironmentVariable("envvar", varEnv);
其他回答
这将适用于机器设置的环境变量。对于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将在环境变量值中被重写。
环境变量也可以放在应用程序的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);
我在使用. net控制台应用程序读取PATH环境变量时遇到了这个问题,并发现使用System.Environment.GetEnvironmentVariable将自动展开环境变量。
我不希望发生这种事……这意味着路径为“%SystemRoot%\system32”的文件夹被重写为“C:\Windows\system32”。为了获得未展开的路径,我必须使用以下方法:
string keyName = @"SYSTEM\CurrentControlSet\Control\Session Manager\Environment\";
string existingPathFolderVariable = (string)Registry.LocalMachine.OpenSubKey(keyName).GetValue("PATH", "", RegistryValueOptions.DoNotExpandEnvironmentNames);
对我来说很管用。
获取和设置
Get
string getEnv = Environment.GetEnvironmentVariable("envVar");
Set
string setEnv = Environment.SetEnvironmentVariable("envvar", varEnv);
推荐文章
- 如何在ASP中使用ILogger进行单元测试。网络核心
- Visual Studio 2017:显示方法参考
- Swagger UI Web Api文档呈现枚举字符串?
- 没有DbSet实体框架核心的原始SQL查询
- 在反应本地设置环境变量?
- 将null分配给SqlParameter
- 任务构造函数中的取消令牌:为什么?
- 是否有一种方法来检查是否int是合法的enum在c# ?
- 远程主机强制关闭现有连接
- 为什么ReSharper想要使用'var'的一切?
- 如何检查一个对象是否为空?
- 为什么要删除不必要的c#使用指令?
- 为什么使用HttpClient进行同步连接
- 什么是MvcHtmlString,什么时候我应该使用它?
- 我怎么能找到一个列表<>的最后一个元素?