我有使用<Environment />
元素更新环境变量的 wix 安装程序。
环境变量值在注册表中更新。但是当我尝试打开 Powershell 时,除非我重新启动我的电脑,否则它看不到任何变化。
有没有人对我为什么/如何以及如何避免重新启动有任何想法。提前谢谢,没有邮件
更新:我找到了为什么会这样。事实证明,会话变量会在重新启动或发送系统广播消息时更新。发送广播消息
SendMessage (HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)"Environment");
发送消息的另一种肮脏方式是使用SETX
将新值写入环境变量并更新会话信息的命令
SETX something_that_is_not_important value_that_is_not_important
请注意,您仍然需要关闭并打开命令行或 PowerShell 控制台