我正在将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)(这里只有admin具有写访问权限)。我错过了一些非常明显的东西吗?运行NSIS 2.45。