0

我在安装过程中创建了两个环境变量。在安装过程中,我的一些批处理文件正在使用这些环境变量。但是当我的批处理文件开始执行时,我找不到可用的环境变量。安装后我可以找到正确设置的环境变量。我在这里想念什么?是否有任何排序问题,比如我在设置环境变量之前运行我的批处理文件?请对此有所了解,我在过去一周内一直在尝试。

4

1 回答 1

1

这将有助于准确了解您的代码在哪里运行(排序)以及它是否被延迟、模拟等等,以及变量是用于用户还是系统。

问题往往是:

  1. 如果它被延迟并在本地系统帐户下运行,它将看不到用户变量。

  2. 如果它被模拟,它将看不到任何用户变量,因为模拟仅意味着用户帐户凭据 - 这并不意味着加载整个用户配置文件(这是查看用户变量所必需的)。

  3. 您可能注定要失败,因为 Windows Installer 直到安装结束时才会广播或提交更改。提交自定义操作可能会找到它们,或者在 InstallFinalize 之后执行程序的 shell 可能会找到它们。

  4. 服务看不到它们,因为 SCM 从系统启动时就保存它们并且不会刷新它们。

  5. 如果您需要一个正在运行的程序在安装后获取它们,它需要响应 WM_SETTINGSCHANGED Windows 消息。

前三个可能与您的问题最相关。

于 2018-07-05T18:46:04.130 回答