Installshield 2013升级不删除以前的版本(需要检查的东西?)

时间:2014-03-21 17:30:31

标签: installer install windows-installer installshield addremoveprograms

我已经创建了InstallShield项目的副本,因此所有设置都应该相同。 (我之前成功完成了这项工作)。我正在使用此副本对安装程序项目进行更改,因为它将以自动构建方式调用。我在这个版本的安装程序项目中做出的一个重大改变是为pre-req(s)引用共享网络位置。一个pre-req是另一个在此之前构建的安装程序项目,并在主安装程序中引入。

我在本地测试此构建,而不是通过自动构建过程。

我知道升级代码匹配。我有2个升级代码检查主要更新。我也检查了#34;任何版本"设置也是如此。

但是,当我构建并测试新的安装程序时,它不会删除以前的条目。

我已在此处检查[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall]并查看其中列出的应用两次。我真的希望找到UpgradeCode,以便在某些原因因为某种原因而被搞砸而没有骰子的情况下有所帮助。

[HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ installer]< - no dice

正如一些人建议我浏览了exe并试图添加Major Upgrade项目,我仍然得到相同的升级代码。

所以我的问题是,是否有人有任何其他要检查可能阻止从add-remove对话框中获取此条目。

日志文件

MSI (c) (D0:E0) [16:26:28:649]: Doing action: FindRelatedProducts
Action 16:26:28: FindRelatedProducts. Searching for related applications
Action start 16:26:28: FindRelatedProducts.
Action ended 16:26:28: FindRelatedProducts. Return value 1.

MSI (s) (2C:68) [14:12:34:706]: Doing action: RemoveExistingProducts
Action 14:12:34: RemoveExistingProducts. Removing applications
Action start 14:12:34: RemoveExistingProducts.
Action ended 14:12:34: RemoveExistingProducts. Return value 1.


Action start 13:48:41: ISSetAllUsers.
MSI (c) (6C:9C) [13:48:41:826]: Invoking remote custom action. DLL: C:\Users\ngates\AppData\Local\Temp\MSID938.tmp, Entrypoint: SetAllUsers
InstallShield 13:48:41: Begin SetAllUsers()
InstallShield 13:48:41: Getting records from Upgrade table
InstallShield 13:48:41: UpgradeCode: {84A5CBA6-9BC8-4E99-B8AE-9327E9B78A34} MinVersion:     MaxVersion: 6.38.0.448  Language:   Attributes: 257
InstallShield 13:48:41: Checking related product {AD762BD7-3EA5-4DD2-8552-1474ABED7C6F}
InstallShield 13:48:41:     Venus 7000  {AD762BD7-3EA5-4DD2-8552-1474ABED7C6F}  1033    6.38.0.372   ***Related***
MSI (c) (6C!E4) [13:48:41:854]: PROPERTY CHANGE: Adding IS_MAJOR_UPGRADE property. Its value is 'Yes'.
InstallShield 13:48:41: ALLUSERS of related product {AD762BD7-3EA5-4DD2-8552-1474ABED7C6F} is = 1
InstallShield 13:48:41: End SetAllUsers()
Action ended 13:48:41: ISSetAllUsers. Return value 1.

根据文档(RemoveExistingProducts Action),返回代码为1意味着某些东西被删除了,所以它就像是在工作......

1 个答案:

答案 0 :(得分:-2)

我想出了怎么做!

在主要升级项目上,选择第二个单选按钮。并设置一个合适的范围,对我来说我做了6.0.0.0到6.99.9.9,这似乎是为我做的。由于7.0.0.0将成为我们真正的主要版本。