我正在将 NSIS 安装脚本从 XP 更新到 Win7。由于未知原因,如果在 Win7 下运行,即使以管理员身份运行,安装程序也无法写入注册表。安装程序中嵌入的 UAC 清单设置为需要管理员权限(通过在脚本中指定RequestExecutionLevel admin)。另外,我尝试右键单击安装程序并选择Run as administrator。在操作系统中关闭 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
Run Code Online (Sandbox Code Playgroud)
另一方面,我可以写入受限制的文件夹(例如 C:\ProgramData)(此处默认只有 admin 具有写入权限)。我在这里错过了一些非常明显的东西吗?运行 NSIS 2.45。
使用SetRegView写入HKLM\Softwarex64 上的“真实”键。
使用进程监视器调查其他注册表写入问题...
| 归档时间: |
|
| 查看次数: |
7143 次 |
| 最近记录: |