这可能吗?
所有我可以看到搜索周围基本上是我需要使用第三方工具(如ORCA)从我现有的MSI获得的GUID,并用这些配置的InstallShield卸载现有的版本。 我试过一两个指令集,但至今没有奏效。 可能是因为我做错了什么,但似乎我跳经历了很多篮球的做一些事情,我想应该是比较直接的。 没有这个问题被解决过?
顶部结果谷歌指出了这样的回答 :
- 与逆戟鲸打开旧的MSI,并从属性表它的UpgradeCode
- 在你的InstallShield LE项目进入“常规信息”解决方案资源管理
- 确保“升级代码”字段设置为旧的MSI的UpgradeCode
这是否意味着我不得不打开我的“老MSI与海怪,并得到其的UpgradeCode”我要部署一个新的版本,每一次?
这听起来有点hackish的,而且肯定是一些我不希望有做我每次部署新版本的时间。 有没有办法自动执行此? 这是功能性的InstallShield的更高级的版本(记住裸我在LE - 如果有必要,我会升级)
的InstallShield LE,像之前的安装项目,允许安装的产品将取代先前安装的版本的新版本。 至于是否在技术上是老产品的卸载,或就地升级似乎并不重要。
关键是在产品代码和升级代码之间的区别:
(本文是直接从LE的InstallShield帮助库)。
这不完全是简单的如何使用这些代码来部署产品和同一产品的版本更新。
帮助文本使它听起来像你应该永远不变的产品代码。 不是这种情况。 这或许应该写更清楚地说:“因为这个代码唯一识别你的产品版本 ,改变产品代码你已经分布不推荐使用特定版本之后。” ... 或类似的东西。
基本上,创建一个新的版本发布时,你应该改变产品代码。 离开升级代码孤单! 要更改产品代码,请点击{..}
按钮代码的权利。 LE的InstallShield会生成一个新的代码。
我的标准程序是要改变的版本为我的项目,产生了新的产品代码,并构建的InstallShield安装项目。
当与早期版本的计算机上安装该产品已安装,安装项目将更新它,只留下一个安装在目标机器上的程序版本(最新的)。
据我了解,YJelton的答案是正确的,但如果你想保证老产品被删除,你应该在MajorUpgrade项添加到升级表 - 如果保持升级代码相同(如建议),你可以选择选项“产品分享我的升级代码”,并为产品版本,你可以选择“任何早期版本”。
这样一来,如果升级代码是一样的旧产品,你的新产品具有老产品会移除更新的版本号。
如果你想改变的升级代码,你可以添加与所选选项的“可以具有另一种升级代码产品”一MajorUpgrade项目。 然后粘贴在旧的升级代码。
进入“升级路径”和最小版本设置为空,最大版本。 目前。 包括最大/最小为yes,并设置所有代码IDS一个GUID。
文章来源: How to get InstallShield LE to uninstall the existing installation automatically?