我正在将一个NSIS安装脚本从XP更新到Win7。但是,即使以管理员身份运行,由于未知原因,安装程序在Win7下无法写入注册表。安装程序中嵌入的UAC清单设置为需要管理员权限(通过在脚本中指定RequestExecutionLevel admin)。此外,我尝试右键单击安装程序并选择以管理员身份运行。关闭操作系统中的UAC也无法解决问题。
当我在XP下运行相同的安装程序时,注册表键被正确写入。
我精简了我的安装脚本以试图分离出问题所在:
当我在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。