Inno setup 如果是第二次或第三次安装,则停止从删除注册表项的回滚

Inno setup 如果是第二次或第三次安装,则停止从删除注册表项的回滚,inno-setup,Inno Setup,我有一个安装程序,只需在上次安装的基础上进行安装,就可以进行升级。这很好,但我注意到,如果是第二次或第三次或任何安装,并且在写入文件和执行回滚时出现故障,那么所有注册表项都会被删除 那么,有没有可能让INNO还原以前的密钥 我的代码如下所示: [Registry] Root: "HKLM"; Subkey: "SOFTWARE\NGT"; Flags: noerror Root: "HKLM"; Subkey: "SOFTWARE\NGT\i2tApp"; ValueType: string;

我有一个安装程序,只需在上次安装的基础上进行安装,就可以进行升级。这很好,但我注意到,如果是第二次或第三次或任何安装,并且在写入文件和执行回滚时出现故障,那么所有注册表项都会被删除

那么,有没有可能让INNO还原以前的密钥

我的代码如下所示:

[Registry]
Root: "HKLM"; Subkey: "SOFTWARE\NGT"; Flags: noerror
Root: "HKLM"; Subkey: "SOFTWARE\NGT\i2tApp"; ValueType: string; ValueName: "pathSvr"; ValueData: "{app}"; Flags: noerror uninsdeletekey
Root: "HKLM"; Subkey: "SOFTWARE\NGT\i2tApp"; ValueType: string; ValueName: "pathResp"; ValueData: "{code:GetResponseDir}"; Flags:  noerror uninsdeletekey;    
Root: "HKLM"; Subkey: "SOFTWARE\NGT\i2tApp"; ValueType: string; ValueName: "unInstallerEXE"; ValueData: "unins000.exe"; Flags:  noerror uninsdeletekey
Root: "HKLM"; Subkey: "SOFTWARE\NGT\i2tApp"; ValueType: string; ValueName: "path2PrevInstalls"; ValueData: "{app}"; Flags:  noerror uninsdeletekey
Root: "HKLM"; Subkey: "SOFTWARE\NGT\i2tApp"; ValueType: string; ValueName: "softwareName"; ValueData: "{#MyAppName}"; Flags:  noerror uninsdeletekey
Root: "HKLM"; Subkey: "SOFTWARE\NGT\i2tApp"; ValueType: string; ValueName: "currentVersion"; ValueData: "{#MyAppVersion}"; Flags:  noerror uninsdeletekey

我尝试了不同的标志,但在我看来,我可能不得不手工编写此代码。有什么想法吗?

要撤消删除注册表项吗?有。我想我需要将它们保存到某个地方。好的,我通过将注册表项保存到其他地方来处理这个问题,如果是回滚,我就恢复它们。