Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 可以读取但不能更新新创建的环境变量_C#_.net_Wpf_Environment Variables - Fatal编程技术网

C# 可以读取但不能更新新创建的环境变量

C# 可以读取但不能更新新创建的环境变量,c#,.net,wpf,environment-variables,C#,.net,Wpf,Environment Variables,我创建了一个新的环境变量来跟踪可能故障条件的状态,该变量是一个名为FailFlag的简单标志,可以设置或重置,其值分别为FlagIsSet和FlagIsSet。为了创建环境变量,我从控制面板打开了系统环境变量,添加了一个名为FailFlag的新系统变量,并将其赋值为FlagIsReset 现在,我想通过编程设置和重置我的C#程序中的标志。我的尝试如下: namespace EnvVars { class Program { static void Main(str

我创建了一个新的环境变量来跟踪可能故障条件的状态,该变量是一个名为
FailFlag
的简单标志,可以设置或重置,其值分别为
FlagIsSet
FlagIsSet
。为了创建环境变量,我从控制面板打开了系统环境变量,添加了一个名为
FailFlag
的新系统变量,并将其赋值为
FlagIsReset

现在,我想通过编程设置和重置我的C#程序中的标志。我的尝试如下:

namespace EnvVars
{
    class Program
    {
        static void Main(string[] args)
        {
            string value = Environment.GetEnvironmentVariable("FailFlag"); // Here value is seen to be 'FlagIsReset'
            if (value == null)
                System.Console.WriteLine("Failed to read env variable");  
            else
                Environment.SetEnvironmentVariable("FailFlag", "FlagIsSet");
        }
    }
}
但是,如果我运行程序,然后再次检查系统环境变量,我会看到
FailFlag
FlagIsReset
,而不是
FlagIsSet
,这意味着我的程序无法更新其值。你能给我一个建议吗

FWIW,我以管理员的身份创建了Visual Studio

既然
SetEnvironmentVariable
重载的范围是进程,那么您期望的是什么

如果需要不同的存储范围,请尝试不同的存储范围

既然
SetEnvironmentVariable
重载的范围是进程,那么您期望的是什么


如果需要不同的存储范围,请尝试其他存储范围。该环境是父进程环境的继承副本。您不能以您尝试的方式修改全局环境。

该环境是父进程环境的继承副本。您不能以您尝试的方式修改全局环境。

@StraightLine请尝试其他环境VariableTarget枚举(如果您需要其他存储)scope@StraightLine如果需要不同的存储范围,请尝试其他environmentvariabletarget枚举
Public method Static member     SetEnvironmentVariable(String, String)  //Creates, modifies, or deletes an environment variable stored in the current process.
Public method Static member     SetEnvironmentVariable(String, String, EnvironmentVariableTarget)   //Creates, modifies, or deletes an environment variable stored in the current process or in the Windows operating system registry key reserved for the current user or local machine.