安装 Installshield 2010 前需要卸载无关的应用程序

Posted

技术标签:

【中文标题】安装 Installshield 2010 前需要卸载无关的应用程序【英文标题】:Need to uninstall unrelated application before installation Installshield 2010 【发布时间】:2012-07-11 01:02:36 【问题描述】:

提前道歉,我仍然是 Installshield 新手!

我目前正在使用 installsheild 2010 为我的应用程序 (ds2) 打包一个安装包。我的麻烦是我需要删除该项目的前一个化身,该项目是使用 installshield 2008 作为合并模块 (ds1) 创建的,而不是本身的安装程序。

所以旧版本(ds1)目前缺少升级代码等,只能访问产品版本和包代码。

新程序具有通常的升级、包、产品代码 (ds2)。

是否可以将旧产品 mergeModule 关联到新应用程序,以便可以将其作为“以前的版本”卸载。或者是否有另一种方法可以让 installshield “删除产品代码为 xxxxxxxx 的任何内容”

我希望这足够清楚,可以做出回应! 提前致谢

【问题讨论】:

你至少有旧应用程序版本的msi文件吗? 是的,但是原始产品附加到多个安装程序 - 我不想卸载与以前安装有关的所有内容,只是相关的产品合并模块(对不起,这是'一点都不清楚!) 我打算为你写出不同的答案。所以请经常定期检查。您应该开始考虑的一件事是......您需要破解或排除安装程序所做的事情。 【参考方案1】:

只有 FindRelatedProducts 需要UpgradeCode 来确定 ProductCode。 RemoveExistingProducts 使用该 ProductCode 进行删除。

您可以根据虚假的 UpgradeCode 创建一个 Major Upgrde,因为您知道它不会找到任何东西。然后,您可以使用 Type 51 Set Property 自定义操作将已知 ProductCode 分配给主要升级规则使用的 ActionProperty。然后 RemoveExistingProducts 将出现并卸载该产品。

【讨论】:

嗨,它似乎没有卸载旧产品。我认为这是因为我有一个“包代码”而不是来自旧 installshield ism 的“产品代码”——我曾希望它会评估为同样的东西。我认为这是解决这个问题的正确方法,我只需要让 2008 合并模块与 2010 包有一些共同点:( 不,我希望 PackageCode 和 ProductCode 属性 guid(或任何与此相关的 guid)永远不会相同。您使用合并模块的事实与手头的问题无关,因为合并模块不是产品,既没有 PackageCode 也没有 ProductCode。 当然!我不希望他们是一样的。我想我的观点丢失了。如前所述,旧产品作为另一个项目的合并模块存在。由于新产品有自己的安装程序,我无法通过通常的升级代码来卸载旧产品。

以上是关于安装 Installshield 2010 前需要卸载无关的应用程序的主要内容,如果未能解决你的问题,请参考以下文章

使用InstallShield打包VS程序

InstallShield 先决条件(错误 -7067)

InstallShield Limited Edition Project 打包windows服务解析

安装installshield问题

在安装之前强制 Installshield 卸载

InstallShield Limited Edition使用说明