You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

NSIS的InstalldirRegKey是否误用App Paths?安装路径异常求助

问题解决方案

1. 让安装程序优先使用InstallDir而非InstallDirRegKey

直接修改安装脚本,移除或注释掉InstallDirRegKey相关指令,安装程序就会默认使用你预先定义的InstallDir值(比如C:\Program Files\My Apps\A)作为安装路径。

如果需要重装时自动识别原安装目录,不要复用App Paths的注册表项,应该单独创建一个专门记录安装目录的注册表项:

  • 首次安装时,将安装目录写入HKEY_LOCAL_MACHINE\SOFTWARE\My Apps\A\InstallDir(默认值设为C:\Program Files\My Apps\A)
  • 将脚本中的InstallDirRegKey改为指向这个新项,示例代码:
InstallDirRegKey HKLM "SOFTWARE\My Apps\A" "InstallDir"

这样既能保留重装识别原路径的功能,又不会和App Paths的功能冲突。

2. InstallDirRegKey不应占用App Paths注册表项

完全不应该,原因如下:

  • 语义不符:App Paths的设计定位是「让系统/其他应用快速找到可执行文件的路径」,核心是映射exe文件的位置,而非存储应用的根安装目录,名称里的「App Paths」已经明确了它的用途;
  • 路径解析风险:App Paths中存储的是exe的完整路径(比如C:\Program Files\My Apps\A\a.exe),如果用它作为InstallDirRegKey的来源,安装程序可能错误地将文件路径当成目录处理,导致你遇到的嵌套目录(A\A\a.exe)问题;
  • 稳定性问题:App Paths可能被系统或其他应用修改,会干扰安装程序对原安装目录的识别逻辑。

内容的提问来源于stack exchange,提问作者LarryB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 09:32:06