使用 Inno Setup 修补 Install Shield 应用程序

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

嗨,我有一个问题,我需要一些指导。 我有一个旧的应用程序,它有一个安装屏蔽安装程序,但我没有安装程序脚本。现在我想使用 Inno Setup 为该应用程序做一个简单的补丁。

我正在阅读文档,如果我知道 appId,我可以将新文件附加到同一安装中。但是我现在不知道该应用程序有什么 ID。我尝试了一个使用相同名称的简单脚本,但它也不起作用。

是否可以找到要附加到该安装的 appId?

有人可以指出我正确的方向,还是不可能做到这一点?

windows windows-installer installshield inno-setup
2个回答
3
投票

简单的回答是否定的,您无法创建与之前的 Install Shield 软件包 100% 无缝的更新软件包。原因是,无论您是否知道 AppId,InnoSetup 都会在任何用于添加到注册表的 AppId 的末尾附加一个 _is。如果你问我的话,这是一个相当时髦的行为,但这就是世界的方式,我们不要忘记你正在处理一个免费的应用程序。他们有自己的推理,而且是合理的,只是目前对您的需求没有意义。

当你遇到同样的情况时,你总是可以做我所做的事情:

  1. 找到原安装的AppId。

    a.在控制面板下打开添加/删除程序。

    b.在列表中找到您的应用程序并记下名称。

    c.打开注册表编辑器。 *免责声明:这可能会对您的系统产生不利影响,因此请小心

    d。打开以下注册表项:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

    e。单击您看到的第一个 GUID,然后根据您之前记下的名称检查右侧窗格中的 DisplayName 值。如果该值与您找到的 AppId 匹配 - 它就是您选择的 GUID。

    f。选择下一个 GUID 并返回步骤 1e,直到找到匹配项。

  2. 将此 AppId 用作您在 InnoSetup 中使用的 AppId,但在标题中添加“更新”一词。

  3. 构建并运行您的安装。

  4. 现在,您的应用程序的“添加/删除程序”中将有两个条目,但其中一个条目已明确标记为更新。您还完成了额外的工作,以确保 AppId 尽可能匹配,从而使其他程序更容易确定它们是相关的。

祝你一切顺利!


0
投票

修改 Inno Setup 脚本 (.iss) 以包含新文件或修改后的文件。更新脚本中的版本信息。 例如:[文件] 来源:“PathToUpdatedFile*”;目标目录:“{app}”;标志:recursesubdirs

[设置] 应用程序版本=2.0

© www.soinside.com 2019 - 2024. All rights reserved.