我刚开始使用新产品,我想我不理解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();
}
}
}
答案 0 :(得分:1)
只有未从父级继承其环境的新启动的进程才会拥有更新的PATH。您必须至少重新启动Visual Studio托管过程,关闭并重新打开您的解决方案。要覆盖所有可能的角落,请注销并重新登录,以便Windows资源管理器(以及Visual Studio)也开始使用更新的环境。