【问题标题】:After updating EnvironmentVariable - PATH - I still get a FileNotFoundException on Windows 2003 Server更新 EnvironmentVariable - PATH - 我仍然在 Windows 2003 Server 上收到 FileNotFoundException
【发布时间】:2011-04-05 22:49:45
【问题描述】:

我刚开始使用新产品,我想我不了解 PATH 变量。我的文档说要像这样在一个小控制台应用程序中成功更新 PATH:

using HP.HPTRIM.SDK;

namespace TestSDKforTRIM71
{
class Program
{
    static void Main(string[] args)
    {
        string trimInstallDir = @"C:\Program Files\Hewlett-Packard\HP TRIM";
        string temp = Environment.GetEnvironmentVariable("PATH") + ";" + trimInstallDir;
        Environment.SetEnvironmentVariable("PATH", temp);
        DoTrimStuff();
    }
    public static void DoTrimStuff()
    {
        using (Database db = new Database())
        {
            db.Connect();
            Console.WriteLine(db.Id);
        }
        Console.ReadKey();
    }
}
}

在上面的项目中,我引用了 HP.HPTRIM.SDK,它存在于: C:\Program Files\Hewlett-Packard\HP TRIM\HP.HPTRIM.SDK.dll

上述运行成功后,我尝试使用控制面板:系统:高级:环境变量永久更改 PATH。我通过检查位于 HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment 的注册表来验证上述 PATH。我将以下内容视为 PATH 值中的最后一个条目: ;C:\Program Files\Hewlett-Packard\HP TRIM\

我认为这会在 PATH 的末尾永久设置它,但是当我运行上面的控制台程序并注释掉几行时,我得到了 FileNotFoundException(见下文)。我对如何在 PATH 中获取它感到困惑,而不必再担心它了。

using HP.HPTRIM.SDK;

namespace TestSDKforTRIM71
{
class Program
{
    static void Main(string[] args)
    {
        //string trimInstallDir = @"C:\Program Files\Hewlett-Packard\HP TRIM";
        //string temp = Environment.GetEnvironmentVariable("PATH") + ";" + trimInstallDir;
        //Environment.SetEnvironmentVariable("PATH", temp);
        DoTrimStuff();     // without setting the PATH this fails despite being in REGISTRY...
    }
    public static void DoTrimStuff()
    {
        using (Database db = new Database())
        {
            db.Connect();
            Console.WriteLine(db.Id);
        }
        Console.ReadKey();
    }
}
}

【问题讨论】:

    标签: c# windows-server-2003 environment-variables console-application


    【解决方案1】:

    只有不从其父级继承其环境的新启动进程才会具有更新的 PATH。您至少必须重新启动 Visual Studio 托管进程,关闭并重新打开您的解决方案。要覆盖所有可能的角落,请退出并重新登录,以便 Windows 资源管理器(以及 Visual Studio)也开始使用更新后的环境。

    【讨论】:

    • 谢谢。解释也很好。
    猜你喜欢
    • 2011-08-04
    • 1970-01-01
    • 2012-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多