2010-11-08 196 views
0

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

我正在阅读文档,如果我知道appId,我可以只添加到相同的安装新文件。不过,我现在不知道该应用程序具有哪些ID。我尝试了一个使用相同名称的简单脚本,但它也没有工作。

无论如何找到附加到该安装的appId?

有人能指引我走向正确的方向,还是无法做到这一点?

+0

知道InstallShield安装程序是什么类型的安装程序非常重要。是纯InstallScript项目还是Windows Installer项目的某种形式(EXE中的MSI或MSI) – 2010-11-08 13:24:54

+0

嗨,我很抱歉。我是这个安装领域的新手。我没有访问前面的代码,所以我会尝试我能看到的。 安装程序是一个exe文件。它安装应用程序并在“Program Files \ InstallShield安装信息”中创建一个文件夹,里面有几个文件,但没有说是否是MSI。然而,在安装程序是本 [启动] AppName的= MyApp的 引擎= 0 复印= 1个 源= 0 [语言] 默认=为0x0009 计数= 1个 KEY0 =为0x0009 希望它helsp,对不起,如果信息不够准确。 – adn 2010-11-09 01:01:06

回答

2

简短的回答是否定的,您无法创建与以前的Install Shield软件包完全无缝的更新软件包。原因是,无论您是否了解AppId,InnoSetup都会在添加到注册表中的任何AppId的末尾附加一个_is。如果你问我,这是一个非常奇怪的行为,但这是世界的方式,我们不要忘记你正在处理一个免费的应用程序。他们有他们的推理,这是正确的,在这一点上你的需求是没有意义的。

你总是可以做什么我做的时候面临着同样的情况:

  1. 发现,原来安装的的AppId。

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

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

    c。打开RegEdit。 *免责声明:这可能会对您的系统产生不利影响,请慎重处理

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

    e。点击你要找的第一个GUID,然后在右边的窗格中查看你之前记下的名称的DisplayName值。如果这个值匹配你找到了AppId - 这是你选择的GUID。

    f。选择下一个GUID并返回到第1e步,直到您匹配。

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

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

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

祝你好运!

+0

非常感谢。 – adn 2010-11-19 08:01:14

相关问题