我已经创建了 InstallShield 项目的副本,因此所有设置都应该相同。(我之前成功地做到了这一点)。我正在使用此副本对安装程序项目进行更改,因为它将以自动构建方式调用。我对这个版本的安装程序项目进行的一项重大更改是为 pre-req(s) 引用共享网络位置。一个 pre-req 是在此之前构建的另一个安装程序项目,并引入了主安装程序。
我正在本地测试这个构建,而不是通过自动构建过程。
我知道升级代码匹配。我有 2 个主要更新的升级代码检查。我还检查了“任何版本”设置。
但是,当我构建和测试新的安装程序时,它不会删除以前的条目。
我在这里检查了 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall] 并看到那里列出的应用程序两次。我真的希望找到升级代码,以便在由于某种原因弄乱的情况下有所了解,没有骰子。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\installer] <- 没有骰子
正如一些人建议的那样,我浏览了 exe 并尝试添加主要升级项目,我仍然得到相同的升级代码。
所以我的问题是,是否还有其他人需要检查可能会阻止将此条目从添加-删除对话框中删除。
日志文件
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 表示某些东西已被删除,所以它的行为就像它正在工作......