После обновления EnvironmentVariable - PATH - я по-прежнему получаю исключение FileNotFoundException на Windows 2003 Server - PullRequest
0 голосов
/ 06 апреля 2011

Я только начинаю с новым продуктом, и мне кажется, я не понимаю переменную 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: \Программные файлы \ Hewlett-Packard \ HP TRIM \ HP.HPTRIM.SDK.dll

После успешного выполнения вышеописанного я попытался навсегда изменить PATH с помощью панели управления: Система: Дополнительно: Переменные среды.Я проверил вышеуказанную переменную PATH, проверив реестр в HKLM \ SYSTEM \ CurrentControlSet \ Control \ Session Manager \ Environment.В качестве последней записи в значении 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();
    }
}
}

1 Ответ

1 голос
/ 06 апреля 2011

Только недавно запущенные процессы, которые не наследуют свою среду от своего родителя, будут иметь обновленный PATH.Вам нужно будет по крайней мере перезапустить процесс размещения Visual Studio, закрыть и заново открыть свое решение.Чтобы покрыть все возможные углы, выйдите из системы и снова войдите в нее, чтобы проводник Windows (и, следовательно, Visual Studio) также начал использовать обновленную среду.

...