几年前,作为 Embarcadero 产品的一部分,我已经使用 Installaware 12 很长时间了。 Embarcadero 下载不再提供此功能,而且 installaware 对于业余开发人员来说非常昂贵。因此,我想将现有的 Installaware 项目迁移到 Inno Setup。
我已经弄清楚如何设置安装程序并将我的文件放置在我想要的位置。 理想情况下,我希望 Inno Setup 安装程序替换我现有的应用程序,而不是进行另一个安装,以便我可以向人们发送我的应用程序的更新,它将替换以前的安装。
Installaware 具有用于安装的“产品代码”和“修订版本代码”。 是否可以在 Inno Setup 中使用这些,以便安装程序将我的应用程序识别为由 installaware 安装的应用程序。
如果是这样,我该怎么做?
我尝试将 Inno Setup“AppId”设置为“产品代码”,但这似乎不起作用,我最终在 Windows 中得到了一个新应用程序。
您可以在
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;