28

我正在使用需要设置系统 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 位系统上的已知问题吗?

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

谢谢,艾伦

4

2 回答 2

29

检查 ServerFault 上的这个问题:如何在不重新启动的情况下添加 Windows 环境变量?

因此,要将更改传播到环境变量列表,您可以编写一个广播WM_SETTINGCHANGE消息的小程序,如知识库文章如何将环境变量传播到系统中所述

于 2011-08-08T16:36:08.810 回答
6

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

无需重新启动的解决方法:

  1. 杀死并重新启动explorer.exe,尽管这不适用于每个正在运行的进程,并且仅适用于当前登录的用户。
  2. 重新启动您要使用的进程或程序,即。用 cmd.exe 试试这个。同样,这仅适用于登录用户。

总而言之,为了让每个用户都能使用它,您仍然需要重新启动。

于 2016-02-11T09:17:35.390 回答