我尝试对两者使用相同的安装程序(全新安装和更新)。
- 因此,如果用户第一次尝试安装我的应用程序,它将运行完整安装,包括 MySQL 安装程序作为先决条件,以及 MySQL 安装的一部分
[Code]
就会正常执行。
- 但是,如果用户已经安装了我的应用程序,并且安装程序是较新版本(更新),则 MySQL 安装部分将在
[Code]
不应该被执行。
那么,如果安装是刚刚更新的话,这部分代码(MySQL安装)如何实现异常功能呢?
[Code]
procedure CurStepChanged(CurStep: TSetupStep);
{ ... }
begin
if CurStep = ssPostInstall then
begin
{ fresh installation code }
end;
end;
您可以使用IsUpgrade
从我的回答来看
Inno Setup 对新安装和更新的响应是否不同? https://stackoverflow.com/q/3205220/850848#28499259:
尽管它依赖于“卸载”注册表项的存在,该注册表项在安装时已经存在ssPostInstall
,你必须缓存它的值。
var
IsUpgradeCached: Boolean;
function InitializeSetup(): Boolean;
begin
IsUpgradeCached := IsUpgrade;
Result := True;
end;
procedure CurStepChanged(CurStep: TSetupStep);
{ ... }
begin
if (CurStep = ssPostInstall) and (not IsUpgradeCached) then
begin
{ fresh installation code }
end;
end;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)