Nsis 脚本:从 NSIS 脚本中的注册表项值读取失败

Nsis Script : Reading from registry key value in NSIS script fails

我正在创建具有多个依赖项的安装程序,在我的 exe 安装成功后,它将重新安装。但是,虽然从注册表中读取它什么也没给出,但注册表中仍然存在条目。 为了调试这个问题,我正在阅读我的注册表项,它显示了正确的值。但是当我再次 运行 我的 exe 时,它​​什么也没给。

“当我安装我的 exe 依赖项然后我的 exe 时,这个问题就来了。当依赖项已经安装时,这个问题就不会出现了。 请帮助我

代码:

ReadRegStr $R0 HKLM "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall${PRODUCT_NAME}" "UninstallString" 
StrCmp $R0 "" init.install

每次 $R0 值为“”,但在同一路径中存在条目。帮我调试这个问题。

这可能是因为 NSIS 从 x64 上的 wow6432node 读取 OS。 它默认从 win32 视图读取,因为 NSIS 安装程序是 win32 进程。 在这种情况下,可能会在读取之前调用 SetRegView 64。

http://nsis.sourceforge.net/Reference/SetRegView