设置环境变量需要在64位上重新启动

时间:2011-08-08 08:57:29

标签: windows-7 installer wix environment-variables reboot

我正在使用需要设置系统PATH环境变量的Wix 3.5的安装程序。

这就是我设置环境变量的方法:

<Directory Id="DirectoryName">
    <Component Id="ComponentID" Guid="{BE20AF67-5943-4AF4-BE66-226E2D4B844F}">
        <Environment Id="EnvironmentID" Name="PATH" Action="set" Value="the path" Part="last" Separator=";" System="yes" />
    </Component>
</Directory>

这似乎适用于32位系统,无需重新启动即可识别更改。但是,当我在64位Windows 7上尝试时,需要重新启动。

这是64位系统上的已知问题吗?

也许最好的方法是安排重新启动以涵盖所有基础。

谢谢, 艾伦

2 个答案:

答案 0 :(得分:27)

在ServerFault上查看此问题:How do you add a Windows environment variable without rebooting?

因此,要将更改传播到环境变量列表,您可以编写一个小程序,广播WM_SETTINGCHANGE消息,如知识库文章How to propagate environment variables to the system中所述。

答案 1 :(得分:5)

添加或设置环境变量时,会向所有程序发送WM_SETTINGCHANGE消息,以通知他们更改。但是,任何已经运行的程序都不会获得更新的环境,除非它可以自己处理此消息。重新启动系统会更新每个程序。

无需重启的解决方法:

  1. 终止并重新启动 explorer.exe ,尽管这不适用于每个正在运行的进程,并且仅适用于当前登录的用户。
  2. 重新启动您要使用的过程或程序,即。使用cmd.exe试试这个。同样,这仅适用于登录用户。
  3. 总结一下,为了让每个用户都能使用它,你仍然需要重新启动。