【问题标题】:How to set environment variable Path using C# [duplicate]如何使用 C# 设置环境变量路径 [重复]
【发布时间】:2014-04-01 08:52:34
【问题描述】:

我正在尝试为MySql 设置路径环境变量。

我没有收到错误,但我的代码不起作用。

代码:

第一:

string pathvar = @";C:\Program Files\MySQL\MySQL Server 5.1\bin\\";
System.Environment.SetEnvironmentVariable("PATH", pathvar);

第二:

string pathvar = System.Environment.GetEnvironmentVariable("PATH");
System.Environment.SetEnvironmentVariable("PATH", pathvar + @";C:\Program Files\MySQL\MySQL Server 5.1\bin\\");

感谢您的帮助...

【问题讨论】:

  • Tru 将@";C:\Program Files\MySQL\MySQL Server 5.1\bin\\" 更改为@";C:\\Program Files\\MySQL\\MySQL Server 5.1\\bin\\"
  • 使用 @ 时无需将 "\" 设置为 "\\" ,字符串前的 @ 将导致没有字符,在其后的字符串上充当特殊字符。

标签: c# mysql


【解决方案1】:

您正在将环境变量与您的程序相关联,但您希望将其与您的本地计算机相关联,以使其可用于每个程序。查看采用EnvironmentVariableTarget 的重载。

var name = "PATH";
var scope = EnvironmentVariableTarget.Machine; // or User
var oldValue = Environment.GetEnvironmentVariable(name, scope);
var newValue  = oldValue + @";C:\Program Files\MySQL\MySQL Server 5.1\bin\\";
Environment.SetEnvironmentVariable(name, newValue, scope);

【讨论】:

  • 确实如此。 EnvironmentVariableTarget.Machine;可能是他需要的。
  • 你是对的。我认为 %PATH% 是按用户定义的,但显然不是。
  • @StevenLiekens PATH 被定义为 both 每个用户 每个机器。有效的PATH 是两者的串联。修改哪个视具体情况而定。
  • 复制粘贴这段代码可能会导致一个BUG:GetEnvironmentVariable返回用户和机器的连接路径,如果你没有指定目标。此代码将获取总的连接路径,向其中添加一些内容,然后将其写入机器目标。这会将用户路径复制到机器路径上!
  • 好眼光@Whosdatdev,已修复!
【解决方案2】:

调用 SetEnvironmentVariable 对系统环境变量没有影响。 在这里检查这个答案:

https://stackoverflow.com/a/19705691/1057667

【讨论】:

    猜你喜欢
    • 2018-01-04
    • 1970-01-01
    • 2019-03-18
    • 1970-01-01
    • 2012-10-28
    • 2011-08-02
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    相关资源
    最近更新 更多