可执行文件无法访问环境变量,但如果从Visual Studio(C#)启动它可以

时间:2013-07-26 19:40:11

标签: c# visual-studio environment-variables

string root = System.Environment.GetEnvironmentVariable("ROOT").

当我从Visual Studio启动程序时,root是预期的目录。但是,当我自己启动它时(有或没有管理员权限),root是未定义的。

如果我将结果写在日志文件中,这就是它的样子:


从Visual Studio启动:

开始记录

访问根目录 ....


自己发布:

开始记录

Root未定义! ......

编辑:此env变量在“HKEY_LOCAL_MACHINE \ System \ Control \ Session Manager \ Environment”中定义。

当我在提示符下键入SET时显示。当我访问环境变量时它不会显示 来自Computer-> Properties-> Advanced Settings。

程序应该在具有相同设置的机器上工作,因此用户不会自己定义变量(这将使程序可以访问环境)。

1 个答案:

答案 0 :(得分:0)

我怀疑没有为运行该进程的用户定义环境变量。

http://support.microsoft.com/kb/310519

有系统和用户特定的环境变量。

您可以在提示符下键入env(或set),以列出已设置的内容和未设置的内容。