【问题标题】:Using Inno Setup to patch an Install Shield Application使用 Inno Setup 修补 Install Shield 应用程序
【发布时间】:2010-11-08 10:32:15
【问题描述】:

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

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

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

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

【问题讨论】:

  • 了解InstallShield 安装程序是什么类型的安装程序非常重要。是纯 InstallScript 项目还是某种形式的 Windows Installer 项目(EXE 中的 MSI 或 MSI)
  • 嗨,对不起。我是安装程序领域的新手。我无法访问以前的代码,所以我会尝试我能看到的。安装程序是一个exe。它安装应用程序并在“Program Files\InstallShield Installation Information\”中创建一个文件夹,里面有几个文件,但没有说它是否是MSI。但是,在设置中是这个 [Startup] AppName=MyApp Engine=0 Copy=1 Source=0 [Languages] Default=0x0009 count=1 key0=0x0009 希望对您有所帮助,如果信息不够准确,请见谅。

标签: windows windows-installer installshield inno-setup


【解决方案1】:

简短的回答是否定的,您不能创建与以前的 Install Shield 包 100% 无缝的更新包。原因是,无论您是否知道 AppId,InnoSetup 都会在任何 AppId 的末尾附加一个 _is 以添加到注册表中。如果你问我,这是一个相当时髦的动作,但这是世界的方式,我们不要忘记你正在处理一个免费的应用程序。他们有他们的推理,这是合理的,只是在这一点上对您的需求没有意义。

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

  1. 找到原始安装的 AppId。

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

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

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

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

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

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

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

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

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

祝你一切顺利!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-14
    • 1970-01-01
    • 1970-01-01
    • 2011-01-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多