我正在使用需要设置系统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位系统上的已知问题吗?
也许最好的方法是安排重新启动以涵盖所有基础。
谢谢, 艾伦
答案 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
消息,以通知他们更改。但是,任何已经运行的程序都不会获得更新的环境,除非它可以自己处理此消息。重新启动系统会更新每个程序。
无需重启的解决方法:
总结一下,为了让每个用户都能使用它,你仍然需要重新启动。