问题描述
我正在为我的应用程序使用Inno Setup。该安装程序用于安装和升级(当我启动它时,如果发现较旧的安装程序,请检查是否可以升级...)
我想知道Inno Setup在哪一步中将注册表项写入注册表项,因为即使安装失败,我也会在注册表中找到注册表项。
在安装结束时,我向注册表中的安装密钥添加了其他值(在安装后使用.bat脚本添加...)
而且,当我不更新安装程序时,Inno Setup会删除我的旧密钥并删除我的更改。
那么,使用Inno Setup在注册表中设置密钥的最佳实践是什么? 我应该怎么做才能将我的密钥保留在注册表中而无需在更新时通过Inno Setup进行更改?
我不使用[registry]
部分
[编辑]
示例: 当我第一次安装应用程序时,安装程序(使用Inno Setup创建)将值(InstallLocation,Version ...)存储在注册表中:
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{myApp_guid}_is1"
然后在postInstall上,使用.bat脚本添加其他信息,例如URL或其他程序的路径...
因此,当我做reg query
时,我会遇到以下情况:
reg查询
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{myApp_guid}_is1"
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{myApp_guid}_is1
Inno Setup: Setup Version REG_SZ 6.0.3 (u)
Inno Setup: App Path REG_SZ my_path
InstallLocation REG_SZ my_path
Inno Setup: Icon Group REG_SZ NameGroup
Inno Setup: User REG_SZ User
Inno Setup: Language REG_SZ english
displayName REG_SZ Name App with version
displayIcon REG_SZ my_icon_path
UninstallString REG_SZ "my_uninstall_path"
QuietUninstallString REG_SZ "my_unistall_path" /SILENT
displayVersion REG_SZ 1.0.0
Publisher REG_SZ Publisher
URLInfoAbout REG_SZ URL
HelpLink REG_SZ URL Help
URLUpdateInfo REG_SZ Url
NoModify REG_DWORD 0x1
norepair REG_DWORD 0x1
InstallDate REG_SZ 20200925
MajorVersion REG_DWORD 0x1
MinorVersion REG_DWORD 0x0
VersionMajor REG_DWORD 0x1
VersionMinor REG_DWORD 0x0
EstimatedSize REG_DWORD 0x3a04
HERE_URL_curstom REG_SZ link
HERE_PATH_TO_ANOTHER_PROGRAM REG_SZ path
但是,当我再次启动安装程序(以取消对我的应用程序的更新)时,它将在注册表中删除安装后(URL,其他程序的路径..)。
所以,当我做reg query
时,我会有类似的东西:
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{myApp_guid}_is1"
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{myApp_guid}_is1
Inno Setup: Setup Version REG_SZ 6.0.3 (u)
Inno Setup: App Path REG_SZ my_path
InstallLocation REG_SZ my_path
Inno Setup: Icon Group REG_SZ NameGroup
Inno Setup: User REG_SZ User
Inno Setup: Language REG_SZ english
displayName REG_SZ Name App with version
displayIcon REG_SZ my_icon_path
UninstallString REG_SZ "my_uninstall_path"
QuietUninstallString REG_SZ "my_unistall_path" /SILENT
displayVersion REG_SZ 1.0.0
Publisher REG_SZ Publisher
URLInfoAbout REG_SZ URL
HelpLink REG_SZ URL Help
URLUpdateInfo REG_SZ Url
NoModify REG_DWORD 0x1
norepair REG_DWORD 0x1
InstallDate REG_SZ 20200925
MajorVersion REG_DWORD 0x1
MinorVersion REG_DWORD 0x0
VersionMajor REG_DWORD 0x1
VersionMinor REG_DWORD 0x0
EstimatedSize REG_DWORD 0x3a04
*没有最后2个值
所以我会知道什么时候做的,以及为什么Inno Setup不将我的更改保存在"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{myApp_guid}_is1"
要进行更新,我不会执行首次安装时所用的脚本以及在注册表中进行密钥编辑的地方。
谢谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)