【问题标题】:Executable cannot access an environment variable, but it can if launched from Visual Studio (C#)可执行文件无法访问环境变量,但如果从 Visual Studio (C#) 启动则可以
【发布时间】:2013-07-27 05:09:05
【问题描述】:
string root = System.Environment.GetEnvironmentVariable("ROOT").

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

如果我将结果写入日志文件,它是这样的:


从 Visual Studio 启动:

开始记录

访问根目录 ....


自己启动:

开始记录

根未定义! ......

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

当我在提示符中键入 SET 时它会显示出来。当我访问环境变量时它没有显示 从计算机->属性->高级设置。

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

【问题讨论】:

  • 这个变量是你自己定义的吗?
  • 我已经为这个问题添加了更多细节。

标签: c# visual-studio environment-variables


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2015-05-16
    • 2011-09-29
    • 2019-12-04
    • 2015-09-04
    • 2016-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-25
    相关资源
    最近更新 更多