gpt4 book ai didi

Powershell 环境变量未更新

转载 作者:行者123 更新时间:2023-12-04 08:45:18 25 4
gpt4 key购买 nike

我有使用 <Environment /> 更新环境变量的 wix 安装程序元素。

环境变量值在注册表中更新。但是当我尝试打开 Powershell 时,除非我重新启动 PC,否则它看不到任何更改。

有没有人对为什么/如何以及如何避免重启有任何想法。
提前致谢,
邮箱

更新 : 我已经找到了为什么会这样。事实证明, session 变量会在重新启动或发送系统广播消息时更新。
发送广播消息

SendMessage (HWND_BROADCAST, WM_SETTINGCHANGE, 0, (LPARAM)"Environment");

另一种发送消息的肮脏方式是使用 SETX将新值写入环境变量并更新 session 信息的命令
SETX something_that_is_not_important value_that_is_not_important

请注意,您仍然需要关闭和打开命令行或 PowerShell 控制台

最佳答案

这几乎可以肯定是因为缺少 <WriteEnvironmentStrings> <InstallExecuteSequence> 中的元素WIX 文件的一部分。该自定义操作负责发送广播 WM_SETTINGSCHANGE 消息。

这不完全是 WIX 中的错误,而是记录不完整的要求。要有效地使用 WIX,您还必须了解 Windows Installer 数据库引用文档,而不仅仅是 XML。在 Environment Table 上的 MSDN 主题中描述了调用 WriteEnvironmentStrings 和 RemoveEnvironmentStrings 自定义操作的需要,但使用的术语对于没有本地 MSI 背景的人来说可能是陌生的。

显示此内容的文章位于 http://blogs.technet.com/b/alexshev/archive/2008/03/28/from-msi-to-wix-part-13-installable-items-environment-variable.aspx

关于Powershell 环境变量未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14332419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com