从 NSIS 文档中,我们有
root_key subkey key_name
此属性告诉安装程序检查注册表中的字符串,如果该字符串有效,则将其用于安装目录。如果此属性存在,如果注册表项有效,它将覆盖 InstallDir 属性,否则将回退到 InstallDir 默认值。
所以,如果我在.nsi
文件中有这些行:
InstallDir "D:\myFolder\myFile"
InstallDirRegKey HKCU "Software\${PRODUCT_COMPANY}\${PRODUCT_NAME}" "Install_Dir"
我知道我将安装目录设置D:\myFolder\myFile
为默认目录,但如果Software\${PRODUCT_COMPANY}\${PRODUCT_NAME}
是有效路径,那么我将使用它。那是对的吗?
从另一篇文章中,我了解到该InstallDirRegKey
指令用于覆盖以前在同一位置的安装。它如何更精确地工作?如果我有以下情况,
InstallDir "D:\myFolder\myFile"
InstallDirRegKey HKCU "D:\myFolder\myFile" "Install_Dir"
NSIS 脚本生成的新.exe
文件会覆盖之前的文件吗?或者这是否意味着可执行文件将覆盖前一个?