我在安装过程中创建了两个环境变量。在安装过程中,我的一些批处理文件正在使用这些环境变量。但是当我的批处理文件开始执行时,我找不到可用的环境变量。安装后我可以找到正确设置的环境变量。我在这里想念什么?是否有任何排序问题,比如我在设置环境变量之前运行我的批处理文件?请对此有所了解,我在过去一周内一直在尝试。
问问题
160 次
1 回答
1
这将有助于准确了解您的代码在哪里运行(排序)以及它是否被延迟、模拟等等,以及变量是用于用户还是系统。
问题往往是:
如果它被延迟并在本地系统帐户下运行,它将看不到用户变量。
如果它被模拟,它将看不到任何用户变量,因为模拟仅意味着用户帐户凭据 - 这并不意味着加载整个用户配置文件(这是查看用户变量所必需的)。
您可能注定要失败,因为 Windows Installer 直到安装结束时才会广播或提交更改。提交自定义操作可能会找到它们,或者在 InstallFinalize 之后执行程序的 shell 可能会找到它们。
服务看不到它们,因为 SCM 从系统启动时就保存它们并且不会刷新它们。
如果您需要一个正在运行的程序在安装后获取它们,它需要响应 WM_SETTINGSCHANGED Windows 消息。
前三个可能与您的问题最相关。
于 2018-07-05T18:46:04.130 回答