Windows 7 NSIS:无法写入Windows 7上的注册表(HKLM\Software\…)

Windows 7 NSIS:无法写入Windows 7上的注册表(HKLM\Software\…),windows-7,nsis,Windows 7,Nsis,我正在将NSIS安装脚本从XP更新到Win7。由于未知原因,如果在Win7下运行,安装程序无法写入注册表,即使是作为管理员。安装程序中的嵌入式UAC清单设置为需要管理员权限(通过在脚本中指定RequestExecutionLevel admin)。此外,我还尝试右键单击安装程序并选择以管理员身份运行。在操作系统中关闭UAC也不能解决问题 当我在XP下运行同一个安装程序时,注册表项的编写方式与预期相同 我配对安装脚本以尝试隔离问题: !define APP_NAME "MyTestApp

我正在将NSIS安装脚本从XP更新到Win7。由于未知原因,如果在Win7下运行,安装程序无法写入注册表,即使是作为管理员。安装程序中的嵌入式UAC清单设置为需要管理员权限(通过在脚本中指定RequestExecutionLevel admin)。此外,我还尝试右键单击安装程序并选择以管理员身份运行。在操作系统中关闭UAC也不能解决问题

当我在XP下运行同一个安装程序时,注册表项的编写方式与预期相同

我配对安装脚本以尝试隔离问题:

!define APP_NAME      "MyTestApp"

Name                  "${APP_NAME}"
OutFile               "${APP_NAME} Setup.exe"

RequestExecutionLevel admin
Page instfiles

Section -Core
   SetDetailsView show 

   WriteRegStr HKLM "Software\XyzCompany\${APP_NAME}\Installation" "VersionString" "V0.0.0"

   SetAutoClose false
SectionEnd
另一方面,我能够写入受限制的文件夹(例如C:\ProgramData)(默认情况下只有管理员有写入权限)。我是不是错过了一些很明显的东西?运行NSIS 2.45。

用于写入x64上的“real”
HKLM\Software


用于调查其他注册表写入问题…

是否尝试了v2.46?这是Win7 x86还是x64?运行64位Win7。是的,结果表明该值已写入注册表,但在Wow6432Node分支下。我不知道64位机器上的32位应用程序有单独的注册表分支。为hjelpen加油!!