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

Ala*_*ark 27 installer wix reboot environment-variables windows-7

我正在使用需要设置系统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>
Run Code Online (Sandbox Code Playgroud)

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

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

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

谢谢,艾伦

Ale*_*nov 27

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

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


Kur*_*den 5

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

没有重新启动的解决方法:

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

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