我向我的安装程序添加了一个自定义安装操作,以将我的安装目录之一添加到系统 PATH 环境变量中。运行安装程序后,PATH 变量反映了更改(当我通过控制面板::系统小程序访问它时),但是当我启动新的命令 shell 时,PATH 变量不反映更改。有什么我没有做的事情导致这个吗?
5 回答
我认为这取决于您如何启动新的 Command shell。例如,当您更改系统属性下的 PATH 环境变量时,在您打开新的命令提示符之前,更改不会反映出来。我认为当你启动一个新的“cmd”进程(例如从运行对话框)时,你会得到所有环境变量的新副本,但是如果你以不同的方式启动命令提示符,那么你不会。
对于通过这样的脚本完成的操作,您可能需要在注意到更改之前重新启动。
你是如何启动命令外壳的?使用任务管理器?
我怀疑您可能是从资源管理器启动它 - 如果我没记错的话,这可能意味着您正在继承父进程(在这种情况下为 Windows 资源管理器)PATH 变量。由于这是在安装程序运行之前设置的,因此您会看到旧值。
不确定这是否有帮助...
http://support.microsoft.com/kb/310519说对于系统环境变量(PATH 是其中之一)需要重新启动,尽管我觉得注销和打开可能就足够了。
为什么要为此使用 CustomAction?Windows 安装程序本机支持修改环境变量。另外,我认为当环境变量发生变化时,Windows Installer 会发送一个广播消息来更新系统。这可能意味着您不需要重新启动...但是自从我尝试 YMMV 以来已经有一段时间了。
你是如何添加环境变量的?
无需使用任何外部工具,您就可以将其添加到注册表中。然后,您打开新命令窗口的测试将反映您的更改。