我遇到了使用InstallShield 2010正确卸载创建的MSI的问题。根据日志,我的InstallShield项目包含5个不同的功能,所有功能都正确安装。
安装日志
Action start 14:17:21: InstallValidate.
MSI (s) (60:48) [14:17:21:819]: PROPERTY CHANGE: Deleting MsiRestartManagerSessionKey property. Its current value is '87c91cda6f92ea4989c01c65f841e520'.
MSI (s) (60:48) [14:17:21:819]: Feature: F1; Installed: Absent; Request: Local; Action: Local
MSI (s) (60:48) [14:17:21:819]: Feature: F2; Installed: Absent; Request: Local; Action: Local
MSI (s) (60:48) [14:17:21:819]: Feature: F3; Installed: Absent; Request: Local; Action: Local
MSI (s) (60:48) [14:17:21:819]: Feature: F4; Installed: Absent; Request: Local; Action: Local
MSI (s) (60:48) [14:17:21:819]: Feature: F5; Installed: Absent; Request: Local; Action: Local
...
=== Logging stopped: 1/17/2012 14:21:37 ===
MSI (c) (14:1C) [14:21:37:566]: Note: 1: 1707
MSI (c) (14:1C) [14:21:37:566]: Product: Foo -- Installation operation completed successfully.
MSI (c) (14:1C) [14:21:37:566]: Windows Installer installed the product. Product Name: Foo. Product Version: . Product Language: 1033. Installation success or error status: 0.
但是,当我尝试使用相同的MSI进行卸载时,其中一个功能显示为未安装且随后未卸载。
卸载日志
MSI (s) (38:04) [14:31:09:730]: Doing action: InstallValidate
Action ended 14:31:09: SetODBCFolders. Return value 0.
MSI (s) (38:04) [14:31:09:730]: PROPERTY CHANGE: Deleting MsiRestartManagerSessionKey property. Its current value is '63009fbd7945fe4d8897ff58c1aa8e21'.
MSI (s) (38:04) [14:31:09:730]: Feature: F1; Installed: Absent; Request: Null; Action: Null
MSI (s) (38:04) [14:31:09:730]: Feature: F2; Installed: Local; Request: Absent; Action: Absent
MSI (s) (38:04) [14:31:09:730]: Feature: F3; Installed: Local; Request: Absent; Action: Absent
MSI (s) (38:04) [14:31:09:730]: Feature: F4; Installed: Local; Request: Absent; Action: Absent
MSI (s) (38:04) [14:31:09:730]: Feature: F5; Installed: Local; Request: Absent; Action: Absent
安装最新的MSI后,卸载后,日志看起来就像上面的安装日志。即使MSI没有看到F1功能被安装并重新安装,但由于卸载失败而已经在系统上的所有文件都不会被新文件覆盖。
非常感谢任何帮助。提前谢谢。
答案 0 :(得分:0)
我遇到过类似的问题 要检查的事项:
Installshield组件,禁用共享以防止引用计数
共享组件:否
检查注册表是否有参考计数。搜索此列表以查找文件:
HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Windows \ CurrentVersion \ SharedDLLs
如果您开发了早期的错误安装程序,则可能会保留错误的引用计数。您可以通过安装新的唯一文件夹来验证这一点,并查看问题是否仍然存在。
Installshield,检查重复的组件。由于较旧的条目未完全删除,您可能会安装相同的文件两次。
启用详细日志记录以进行调查:
https://support.microsoft.com/en-us/kb/2545723
日志文件名MSI * .LOG将以例如结尾。 C:\ Users \用户名\ AppData的\本地的\ Temp
搜索未卸载的文件并与其他文件进行比较
在我的案例中行动:为坏人行动,行动:缺席其他人。