从Installaware迁移到Inno Setup

问题描述 投票:0回答:1

几年前,作为 Embarcadero 产品的一部分,我已经使用 Installaware 12 很长时间了。 Embarcadero 下载不再提供此功能,而且 installaware 对于业余开发人员来说非常昂贵。因此,我想将现有的 Installaware 项目迁移到 Inno Setup。

我已经弄清楚如何设置安装程序并将我的文件放置在我想要的位置。 理想情况下,我希望 Inno Setup 安装程序替换我现有的应用程序,而不是进行另一个安装,以便我可以向人们发送我的应用程序的更新,它将替换以前的安装。

Installaware 具有用于安装的“产品代码”和“修订版本代码”。 是否可以在 Inno Setup 中使用这些,以便安装程序将我的应用程序识别为由 installaware 安装的应用程序。

如果是这样,我该怎么做?

我尝试将 Inno Setup“AppId”设置为“产品代码”,但这似乎不起作用,我最终在 Windows 中得到了一个新应用程序。

inno-setup
1个回答
0
投票

您可以在

InitializeSetup
中自由卸载任何您想要的 MSI 软件包(由 InstallAware 或其他工具生成)。

function InitializeSetup(): Boolean;
var
  ResultCode: Integer;
begin
  if Exec('msiexec.exe', '/x {YOUR-PRODUCT-CODE} /quiet /norestart', '', SW_HIDE, ewWaitUntilTerminated, ResultCode) then
  begin
    if ResultCode = 0 then
    begin
      MsgBox('MSI uninstalled successfully!', mbInformation, MB_OK);
    end
    else
    begin
      MsgBox('MSI uninstallation failed with error code: ' + IntToStr(ResultCode), mbError, MB_OK);
    end;
  end
  else
  begin
    MsgBox('Failed to execute msiexec.exe', mbError, MB_OK);
  end;

  Result := True;
end;
© www.soinside.com 2019 - 2024. All rights reserved.